高階関数いいわぁ
抽象とモジュール化ってことか。脊髄反射でぽst。
継承/インターフェースとかと同じパラダイムなのね
関数の引数に関数を指定すること。schemeだと手続きと変数とは全く同じ扱いだからかなりシームレス。
;;普通版 (define (sum-integers a b) (if (> a b) 0 (+ a (sum-integers (+ a 1) b)))) (define (cube x) (* x x x )) (define (sum-cubes a b) (if (> a b) 0 (+ (cube a) (sum-cubes (+ a 1) b)))) ;;高階 ;;高階関数の親?って言うのかしら ;;合計する関数 (define (sum term a next b) (if (> a b) 0 (+ (term a) (sum term (next a) next b)))) ;;インクリ(next b)を作って (define (inc n) (+ n 1)) (define (identity x) x) ;;高階にはめ込み (define (sum-integers a b) (sum identity a inc b)) ;;使ってみるー>おk ;: (sum-integers 1 10) ;;高階関数にはめ込み (define (sum-cubes a b) (sum cube a inc b)) ;;↑ここ ↑ ;;使ってみるー>おk ;: (sum-cubes 1 10)
何でも足せるsum関数ってことらしい。
いやはや楽しい。