0
다음 절차와 같은 currying 방법을 작성해야합니다.Function currying - Scheme
; Signature: c-bc(n)
; Type: [Number -> [Number -> Number]]
; Purpose: A naive Currying for binomial coefficient (n, k).
; Pre-conditions: n is a natural number
; Tests: ((c-bc 5) 3) => 10, ((c-bc 6) 2) => 15,
; ((c-bc 0) 0) => 1
(define c-bc
(lambda (n)
(lambda (k)
(/ (fact n)
(* (fact k)
(fact (- n k)))))))
내 솔루션 : 그것은 바로
(define c-bc
(lambda (n)
(let ((fact-n (fact n)))
(lambda (k)
(/ fact-n (* (fact k) (fact (- n k))))))))
인가? 어떻게 이것이 currying인지 설명 할 수 있습니까?
원래 함수는 이미 currying 중입니다. 나는 당신의 버전이 다르게 해야하는지 모르겠습니다. –
첫 번째 버전은 currying이지만 두 번째 솔루션보다 (fact n) 더 많은 시간을 계산하는 순수한 버전입니다. 우리는 부분적인 평가 목표를 달성 할 것으로 예상했습니다. (uni '과정의 일부로) – roh
누군가가 도와 줄 수 있습니까? – roh