CommonLisp Scheme Part12
■ このスレッドは過去ログ倉庫に格納されています
0326デフォルトの名無しさん
NGNG(let loop ((l l) (r '()))
(if (null? l) (reverse r)
(loop (cdr l) (cons (car l) r)))))
(define (copy-list2 l)
(let loop ((l l) (c (lambda (x) x)))
(if (null? l) (c l)
(loop (cdr l) (lambda (x) (c (cons (car l) x)))))))
(define (copy-list3 l)
(if (null? l) '() (cons (car l) (copy-list3 (cdr l)))))
(define (copy-list4 l)
(let ((n '(())))
(let loop ((l l) (r n) (end n))
(if (null? l) (cdr r)
(begin (set-cdr! end (cons (car l) '()))
(loop (cdr l) r (cdr end)))))))
速度は
copy-list1 > copy-list4 >>> copy-list2 >>>>>> copy-list3
くらいでした。copy-list4 はなんで遅いんだろ。
■ このスレッドは過去ログ倉庫に格納されています