アットウィキロゴ
nofx @Wiki
掲示板 掲示板 ページ検索 ページ検索 メニュー メニュー
「Scheme」の編集履歴(バックアップ)一覧に戻る

Scheme - (2005/09/22 (木) 13:57:31) のソース

【 TUTSchemeで 】

**1.基本構造

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

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

----

***● 関数
&html(<font color="red" size="3"><b>(関数名 </b>式1 … 式n<b>)</b></font>)
式i は関数への引数

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

【例】
>&html(<b>>(+ 1 2 3 4)</b>)&br()10&br()&html(<b>>(+)</b>)&br()0&br()&br()&html(<b>>(* 1 2 3 4)</b>)&br()24&br()&html(<b>>(+)</b>)&br()1&html(<b>>(+ (* 3 4) 5)</b>)&br()17
引数なしの場合はその単位元を返す。
加算の単位元は 0。乗算の単位元は 1。

■ -
【例】
>&html(<b>>(- 7 3)</b>)&br()4&br()&html(<b>>(- 5)</b>)&br()-5&br()&html(<b>>(- -10)</b>)&br()10

■ abs : 絶対値
【例】
>&html(<b>>(abs -10)</b>)&br()10&br()&html(<b>>(abs 5)</b>)&br()5

----

***● 変数の宣言
&html(<font color="red" size="3"><b>(define</b> 変数名 式<b>)</b></font>)
【例】
>&html(<b>>(define x 100)</b>)&br()x&br()&html(<b>>(define y (* x x))</b>)&br()y&html(<b>>(+ x y)</b>)&br()10100

&html(<font color="red" size="3"><b>(set! </b>変数名 式<b>)</b></font>)
変数の宣言機能の他にも変数に値の代入機能も。

【例】
>&html(<b>>(+ x 5)</b>)&br()105&br()&html(<b>>(set! x (* 10)</b>)&br()10&html(<b>>(+ x 5)</b>)&br()15


----

***記号とリスト

■ 記号
&html(<font color="red" size="3"><b>(quote</b> 記号名<b>)</b></font>) = &html(<font color="red" size="3"><b>('</b> 記号名<b>)</b></font>)

記号名という名前の記号が返り値となる。

【例】
>&html(<b>>(quote x)</b>)&br()x&br()&br()&html(<b>>'x </b>)&br()x


■ リスト
&html(<font color="red" size="3"><b>(list</b> 要素名1 … 要素名n<b>)</b></font>)

【例】
>&html(<b>>(list 1 2 3 4 5 6 7 8 9 10)</b>)&br()(list 1 2 3 4 5 6 7 8 9 10)&br()&br()&html(<b>>(list 'we 'eat 'rice) </b>)&br()(we eat rice)
・リストの要素がリストでもOK。
※&html(<b>length</b>) : リストの要素数を調べる関数。
【例】
>&html(<b>>(list 10 (list 'little 'indian 'boys))</b>)&br()(10 (little indian boys))&br()&br()&html(<b>>(length (list 10 (list 'little 'indian 'boys))))&br()2
・リストは関数に渡せる。変数に代入も可能。
【例】
>&html(<b>>(define noun-phrase(list  'little 'indian 'boys))</b>)&br()noun-phrase&br()&html(<b>>noun-phrase</b>)&br()(little indian boys)&br()&html(<b>>(list 10 noun-phrase)&br()(10 (little indian boys))

★リスト要素が全て分かっているなら
&html(<font color="red"><b>(quote</b> リスト表記<b>)</b></font>)
が便利。
【例】
>&html(<b>>(quote (we eat rice))</b>)&br()(we eat rice)&br()&html(<b>>('(we eat rice))</b>)&br()(we eat rice)&br()&br()&html(<b>>(define noun-phrase '(10 (little indian boys)) </b>)&br()noun-phrase&br()&html(<b>>noun-phrase</b>)&br()(10 (little indian boys))&br()&br()&br()【空リスト】&br()&html(<b>>(list)</b>)&br()()&br()&html(<b>>'()</b>)&br()()

----
-[[car, cdr など]]
記事メニュー
最近更新されたスレッド
ウィキ募集バナー