CommonLisp初心者スレ
■ このスレッドは過去ログ倉庫に格納されています
0162デフォルトの名無しさん
NGNG(define (identity obj) obj)
(define (for-each-list f g n lst) ; not末尾再帰版
(if (null? lst) n
(g (f (car lst)) (for-each-list f g n (cdr lst)))))
(define (my-copy-list lst)
(for-each-list identity cons '() lst))
(define (my-map-1 f lst)
(for-each-list f cons '() lst))
(define (my-map-n lsts)
...)
(define (my-map f lst1 . lsts)
(if (null? lsts) (my-map-1 f lst1)
(my-map-n f (cons lst1 lsts)))
この for-each-list を使って、reverse, append, length も書ける。
■ このスレッドは過去ログ倉庫に格納されています