【发布时间】:2018-01-28 13:10:14
【问题描述】:
const res = (n => {
const even = x => {
if (x === 0)
return true
else {
const odd = y => !even(y)
return odd(x - 1)
}
}
return even(n)
})(42)
console.log(res) //=> true
由于参数中使用了 42,但它表示仅当 x 为 0 且严格等于其类型和值时才返回 true,我不确定为什么返回 true。我认为任何值,但 0 应该返回 false。有人可以向我解释一下吗,我对 javascript 和编程非常陌生。
【问题讨论】:
-
函数循环减1,直到减到0,然后返回true。在这里你可以看到它在工作:repl.it/KRZa
-
@Baruch
43会发生什么? repl.it/KRZa -
应该指出,这是一种检查数字是否为偶数的荒谬不切实际且效率低下的方法。如果您打算真正使用它,请不要编写此代码。
标签: javascript function recursion lambda functional-programming