■
たぶんカリー化ってこんな感じのような気がする。
gosh> (define (curry p . args) (lambda r (apply p (append args r)))) curry gosh> (define hogecons (curry cons 'hoge)) hogecons gosh> (hogecons 'moge) (hoge . moge) gosh> (hogecons 'piyo) (hoge . piyo)
もちろんちゃんと考えてる方々がいた。
http://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3A%E6%89%8B%E7%B6%9A%E3%81%8D%E3%81%AEcu
ほう。
妥協案としてこんなのはどうか。
(define (curry fn . args)
(lambda more-args (apply fn (append args more-args))))
として上のと同じ書き方も提案されてた。
ほんで、もう SRFI-26 の相当する機能が規定されて、Gauche でも使えた。
gosh> (define hogecons (cut cons 'hoge <>)) hogecons gosh> (hogecons 'moge) (hoge . moge) gosh> (define hogecons (pa$ cons 'hoge)) hogecons gosh> (hogecons 'moge) (hoge . moge)