nofx @Wiki

Scheme

最終更新:

匿名ユーザー

- view
管理者のみ編集可
【 TUTSchemeで 】

1.基本構造


構文はほぼLISPと同じ。
ちなみに入力はすべて半角で。

>(+ 1 2)
17
>(* 3 4)
12
このように対話型である。
太字部分がユーザ入力部。



● 関数

(関数名 式1 … 式n
式i は関数への引数

■ +, * : 加算、乗算のシステム組み込み関数。任意の引数を受け取ることが可能

【例】
>(+ 1 2 3 4)
10
>(+)
0

>(* 1 2 3 4)
24
>(+)
1>(+ (* 3 4) 5)
17
引数なしの場合はその単位元を返す。
加算の単位元は 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 x)
x

>'x
x


■ リスト
(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 (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)
()
>'()
()


記事メニュー
ウィキ募集バナー