5
루비 1.9.x에 관한 태닝, 나는 어떤 장소에서 그것을 사용하고, 기본적으로 PROC 인수에 기본 매개 변수를 지원하는 것처럼 번역 할 수 있습니다Ruby Reverse Currying : 이것이 가능합니까?
p = proc {|x, y, z|x + y + z}
p.curry[1] #=> returns a lambda
p.curry[1, 2] #=> returns a lambda
p.curry[1, 2, 3] #=> 6
p2 = p.curry[1, 2]
p2.(2) #=> 5
p2.(4) #=> 7
매우 편리합니다, 맞죠? 문제는, 나는 카세트를 역순으로 할 수 있기를 원한다. 즉, 내 proc의 마지막 인자를 임의의 값으로 채우는 것을 의미한다. 이와 같이 :
p = proc{|x, y| x - y }.curry[1]
p.(4)
원하는 결과는 3입니다.이 경우 -3이 반환됩니다.
HUMM를 얻을 그것을 시도를 줄 것, 충분히 깨끗하게 보이는 날 믿어. 유스 케이스는 메서드에서 기본 인수를 가져 오는 것과 동일한 동작을 특정 위치에 복제하는 것이며 마지막 매개 변수를 역방향에서만 설정할 수 있습니다. 같은 방법을 사용하고 다른 인수에서 다른 값으로 기본 인수를 바꾸기를 원했습니다. – ChuckE