(こんなんだったかなーと思い出しながら)
download
;; (iota cnt init inc (define iota (lambda (cnt . opt) (letrec ((init (if (null? opt) 0 (car opt))) (inc (cond ((or (null? opt) (null? (cdr opt))) 1) (else (cadr opt)))) (iter (lambda (cnt init inc ret) (if (zero? cnt) '() (cons ret (iter (- cnt 1) init inc (+ ret inc))))))) (iter cnt init inc init)))) (iota 10 0 1) ;; => (0 1 2 3 4 5 6 7 8 9) (iota 10 1) ;; => (1 2 3 4 5 6 7 8 9 10) (iota 15) ;; => (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14) (iota 10 0 2) ;; => (0 2 4 6 8 10 12 14 16 18) |
0 件のコメント:
コメントを投稿