関数型言語Part2
■ このスレッドは過去ログ倉庫に格納されています
0519デフォルトの名無しさん
NGNGScheme少々Haskellサパーリな人間の回答です。
curry 化というのはわからないけど
リストの先頭要素とそれ以降のリストの要素の大小を比較し、
小さい要素だけのリストを返す関数は以下のように書けます。
(define (rm-if-not p lst)
;; Common-Lisp の remove-if-not 相当
(let loop ((lst lst) (r '()))
(if (null? lst) (reverse r)
(loop (cdr lst) (if (p (car lst)) (cons (car lst) r) r)))))
(define (less-list lst)
(rm-if-not (lambda (x) (< x (car lst))) (cdr lst)))
(less-list '(4 3 5 2 4 6 3))
==> (3 2 3)
■ このスレッドは過去ログ倉庫に格納されています