2017-11-02 1 views
3

핵심 표준 라이브러리를 고수하면서 이와 같은 작업을하려고합니다.라켓의 카레 함수에 대한 자리 표시 자 인수?

(define (fn m x b) (+ b (* m x))) 

((curry fn _ 3 _) 2 4) -> (fn 2 3 4) 

이와 비슷한 것이 있거나 라켓 커뮤니티가 명명 된 인수와 같은 다른 관용구를 규정합니까?

답변

2

표준 솔루션이 있지만 핵심 라이브러리에는 없습니다. 간단히 SRFI 26에서 cut 매크로를 사용 :

(require srfi/26) 

(define (fn m x b) 
    (+ b (* m x))) 

((cut fn <> 3 <>) 2 4) 
=> 10 
(fn 2 3 4) 
=> 10 
+1

하나는 SRFI libs와 핵심 라이브러리의 일부를 _are_ 주장 할 수 - 그들은 결국 꽤 표준있어, 대부분의 통역 가능. –

+1

이것은 포함 된 라이브러리의 일부이며 변경 될 가능성은 없지만 Scheme SRFI의 사양이므로 'lang # racket'이 표준을 따르는 부분입니다. – Sylwester