Schemeはじめてみた #2
Schemeはじめてみた - エンジニアになりたい学生の備忘録の続き
計算
累乗
(expt 2 3) ;2の3乗 > 8
割る
(/ 5 2) > 5/2 ;商 (quotient 5 2) > 2 ;余り (remainder 5 2) > 1 (modulo 5 2) > 1
定義
関数
(define add (lambda (x y) (+ x y)))
変数
(define num 10) (define lat '(a b c)) num > 10 lat > '(a b c)
ローカル変数
(let ((x 0) (y 1)) (+ x y)) -> 1
高階関数
関数を引数に取る関数
map
各要素に仕事をする
(map add1 '(1 2 3)) -> '(2 3 4)
apply
リストの先頭に関数を入れるイメージ
(apply + '(1 2 3)) -> 6
filter
文字通り、フィルタリングする
(filter positive? '(-1 2 4 -5)) -> '(2 4)