Я изучаю карри, и я решил попробовать сделать функцию минимума карри с именем 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
Это не соответствует требованиям карри.
Поэтому, когда я обдумываю, как изменить эту функцию, чтобы она возвращала функцию, я столкнулся с проблемой. Каждый раз, когда карри-функция вызывается с аргументом числа, она должна возвращать минимум (число), но если я правильно понимаю, она также должна возвращать функцию (чтобы ее можно было вызвать еще раз с другим числом). Как это работает?