我正在学习咖喱,我决定尝试制作一个叫做
getMin
.
据我所知,这意味着我应该能够
getMinimum(5)(2)(6)
把它还给我
2
.
我试图用一个简单的闭包来实现这一点,我想出了一个返回数字而不是函数的方法。这是我的代码:
function getMin(val){
var min = val
function calc(num){
if(num<min){
// set new minimum
min = num
return num
}
else {
return min
}
}
return calc
}
var x = getMin(5) // => 5
console.log(x(6))
console.log(x(4))
console.log(x(8))
console.log(x(2))
该日志记录:
5
4
4
2
这不符合咖喱的要求。
因此,当我考虑如何更改这个函数以便返回函数时,我遇到了一个问题。每次用数字参数调用curried函数时,它都应该返回最小值(一个数字),但如果我理解正确,它还应该返回一个函数(以便可以用另一个数字再次调用)。这是怎么回事?