Scheme - (2005/09/22 (木) 13:57:31) の1つ前との変更点
追加された行は緑色になります。
削除された行は赤色になります。
【 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>)
変数の宣言機能の他にも変数に値の代入機能も。
※DrSchemeでは使えない。代わりの関数名があるであろう。
【例】
>&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 など]]
【 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 など]]
表示オプション
横に並べて表示:
変化行の前後のみ表示: