2017-11-02 11 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