「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 など]]