nofx @Wiki
Scheme
最終更新:
匿名ユーザー
-
view
【 TUTSchemeで 】
1.基本構造
構文はほぼLISPと同じ。
ちなみに入力はすべて半角で。
ちなみに入力はすべて半角で。
>(+ 1 2)
17
>(* 3 4)
12
このように対話型である。
太字部分がユーザ入力部。
太字部分がユーザ入力部。
● 関数
(関数名 式1 … 式n)
式i は関数への引数
式i は関数への引数
■ +, * : 加算、乗算のシステム組み込み関数。任意の引数を受け取ることが可能
【例】
>(+ 1 2 3 4)
10
>(+)
0
>(* 1 2 3 4)
24
>(+)
1>(+ (* 3 4) 5)
17
引数なしの場合はその単位元を返す。
加算の単位元は 0。乗算の単位元は 1。
加算の単位元は 0。乗算の単位元は 1。
■ -
【例】
【例】
>(- 7 3)
4
>(- 5)
-5
>(- -10)
10
■ abs : 絶対値
【例】
【例】
>(abs -10)
10
>(abs 5)
5
● 変数の宣言
(define 変数名 式)
【例】
【例】
>(define x 100)
x
>(define y (* x x))
y>(+ x y)
10100
(set! 変数名 式)
変数の宣言機能の他にも変数に値の代入機能も。
変数の宣言機能の他にも変数に値の代入機能も。
【例】
>(+ x 5)
105
>(set! x (* 10)
10>(+ x 5)
15
記号とリスト
■ 記号
(quote 記号名)= (' 記号名)
(quote 記号名)= (' 記号名)
記号名という名前の記号が返り値となる。
【例】
>(quote x)
x
>'x
x
■ リスト
(list 要素名1 … 要素名n)
(list 要素名1 … 要素名n)
【例】
>(list 1 2 3 4 5 6 7 8 9 10)
(list 1 2 3 4 5 6 7 8 9 10)
>(list 'we 'eat 'rice)
(we eat rice)
- リストの要素がリストでもOK。
※length: リストの要素数を調べる関数。
【例】
【例】
>(list 10 (list 'little 'indian 'boys))
(10 (little indian boys))
>(length (list 10 (list 'little 'indian 'boys)))
2
- リストは関数に渡せる。変数に代入も可能。
【例】
>(define noun-phrase(list 'little 'indian 'boys))
noun-phrase
>noun-phrase
(little indian boys)
>(list 10 noun-phrase
(10 (little indian boys))
★リスト要素が全て分かっているなら
(quote リスト表記)
が便利。
【例】
(quote リスト表記)
が便利。
【例】
>(quote (we eat rice))
(we eat rice)
>('(we eat rice))
(we eat rice)
>(define noun-phrase '(10 (little indian boys))
noun-phrase
>noun-phrase
(10 (little indian boys))
【空リスト】
>(list)
()
>'()
()