python チュートリアル確認
python ってタグ付けてるのに scheme に走る不届きモノ。
参考にしているのはPython チュートリアルなんですが、5.1.3 実用的なプログラミングツールの項を見ててタマラなくなり現実トウヒ (何
range という手続きについて、最初こんなのが出てきた
(define (range s e) (if (>= s e) '() (cons s (range (+ s 1) e))))
scheme 的には直截。あるいは末尾呼び出しなソレが以下
(define (range s e) (define (inner-range n ret) (if (>= n e) ret (inner-range (+ n 1) (append ret (list n)))) ) (inner-range s '()))
資料を見るに from なソレが省略可能らしい。
(define (range s . e) (cond ((null? e) (range 0 s)) ((>= s (car e)) '()) (else (cons s (range (+ s 1) (car e))))))
最初、面倒なので s と e を逆にしてたのですがこれはこれで微妙。最終的に上記で落ち着いています。3 番目以降の引数は無視。
本当は reduce という手続きなソレがメインだったのですが時間切れ