Schemeはじめてみた
Schemeとは
環境構築
https://racket-lang.org/からインストールできる
参考文献
Scheme手習い https://www.amazon.co.jp/dp/4274068269/ref=cm_sw_em_r_mt_dp_U_WkGOCb7WY93AXwww.amazon.co.jp
四則演算
> (+ 1 2) 3 > (- 3 2) 1 > (* 1 4) 4 > (/ 2 3) 2/3
用語
アトム
要素
abc
*2-$r
123
リスト
集合
(1 2 3)
(a b c)
((a) b c)
()
S式
アトム、リストのこと
空リスト
()
pair
空リスト以外のリスト
データ
'x
'(a b c)
基本
car
リストの最初のアトム
> (car '(a b c)) 'a
引数に空でないリストを取る
cdr
リストの最初のアトムを除いたリスト
> (cdr '(a b c)) '(b c)
引数に空でないリストを取る
cons
アトムをリストの前につける
> (cons 'x '(a b c)) '(x a b c)
2つの引数をとる。第2引数はリストでなければならない。
null?
空リスト判定
> (null? '()) #t > (null? '(a b c)) #f
#t はtrue、#fはfalseのこと。 引数にリストを取る。
pair?
null?の反対
> (pair? '()) #f > (pair? '(a b c)) #t
引数にリストを取る。
eq?
同等判定
> (eq? 'abc 'abc) #t > (eq? 'abc 'ab) #f
2つの引数を取る。 どちらもアトムでなければならない。
発展
carやcdrが連なるとき
> (car (cdr '(a b c))) 'b > (cadr '(a b c)) 'b
新しい元号は「令和」('ω')ノ