rkdora's Blog

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

新しい元号は「令和」('ω')ノ

Schemeはじめてみた #2 - エンジニアになりたい学生の備忘録