나는 curry
기능이 방법을 구현했습니다. 11이 예상 된 결과가 아닙니까? 내 코드에 어떤 문제가 있습니까?자바 스크립트 카레 기능
참고 : add
기능 로그에 console.log(x, y)
을 사용하십시오. 1 10
. 왜 undefined
을 반환하는지 이해가 안됩니다.
나는 curry
기능이 방법을 구현했습니다. 11이 예상 된 결과가 아닙니까? 내 코드에 어떤 문제가 있습니까?자바 스크립트 카레 기능
참고 : add
기능 로그에 console.log(x, y)
을 사용하십시오. 1 10
. 왜 undefined
을 반환하는지 이해가 안됩니다.
카레 기능에 return
이 누락되었습니다.
e.e.
function curry(func) {
var initial_args = [].slice.apply(arguments, [1]);
var func_args_length = func.length;
function curried(args) {
if (args.length >= func_args_length) {
return func.apply(null, args);
}
return function() {
return curried(args.concat([].slice.apply(arguments)));
};
}
return curried(initial_args);
}
이 카레 함수가 함수의 카레 버전을 생성 : 이것은 카레 함수의 예입니다 :
고마워요, 그건 내 바보 같았어요. – dheerosaur
@dheerosaur - 우리 모두 바보 같아도 걱정하지 마십시오. :) – ChaosPandion
그것은 모두에게 일어납니다 :) –
작동하는 것 같다
return function() {
return fn.apply(null, args.concat(slice.apply(arguments)));
};
. 새 기능에 부분적으로 매개 변수를 적용 할 수 있습니다. 부분적인 각 응용 프로그램의 경우 나머지 매개 변수를 사용하는 함수를 반환합니다. 원래 함수의 모든 매개 변수가 적용되면 값을 반환합니다.
부분적인 응용이 아닌 진짜 카레이기 때문에 +1. – jcubic
사실 카레가 아니기 때문에 부분적으로 적용됩니다. – jcubic
정말로 오래된 스레드를 되 살리고 있다는 것을 알고 있습니다 만,''arguments ''에 대한 인자로'[1]'을 적용하면 어떻게됩니까? –
전달 된 함수를 인수 목록에서 제거합니다! – monoceres