Lisp Scheme Part27at TECH
Lisp Scheme Part27 - 暇つぶし2ch238:デフォルトの名無しさん
09/08/08 14:54:01
>>65,72
遅レスだが、 gauche の define-macro で書いてみた。

(use srfi-1)
(define-macro (curry p . a)
(define (e a)
(define s '(<1> <2> <3> <4> <5> <6> <7> <8> <9>))
(take s (+ 1 (apply max -1
(filter-map
(lambda(p)(list-index (cut eq? p <>) s)) a)))))
(receive (h t) (break (pa$ eq? '<...>) a)
(if (null? t)
`(lambda ,(e a) (,p ,@a))
(let ((r (gensym)))
`(lambda (,@(e a) . ,r)(apply ,p ,@h ,r))))))

最後以外に <...> があった場合のことは考えてない。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch