「プログラミングGauche」P.64~ 66 7.2 手続きを取る手続き
ようは高階関数ということで。foldも高階関数ですね。
for-eachを試してみる。
(for-each (lambda (n) (print (* n n))) '(1 2 3 4 5)) |
tree-walk写経。
;; tree-walk
(tree-walk '(1 (2 3 (4 5 6)) 7 8 9 (10 (11 (12)))) for-each print) |
listを反転させるreverse。
;; reverse
(reverse '(1 2 3 4 5)) ;; => (5 4 3 2 1) |
listを反転後にfor-eachするreverse-for-each。
;; reverse-for-each
(reverse-for-each print '(1 2 3 4 5)) |
tree-walkにreverse-for-eachとprintを渡してみる。
今気づいたけど、本に書いてあるコードと引数の順番違う。
(tree-walk '(1 (2 3 (4 5 6)) 7 8 9 (10 (11 (12)))) reverse-for-each print) |
0 件のコメント:
コメントを投稿