LISPをつつく5−関数で代入。qじゃない関数もある♪2008-11-19 Wed 12:17
前回の記事を読んだ人の中には「じゃあLISPは、関数で代入する事が出来ないの?」と思った人が居ると思うピヨ。でもそこは流石LISP。関数で代入することも出来るピヨ♪というか、本来は関数で代入するもんなんだ。関数型プログラミング言語だからね♪じゃあ、早速変数xに100を代入するピヨ♪
ちょっと面倒だけど上記の様に関数で代入できるピヨ♪ちなみに、quoteは記号(symbol)を定義する関数ピヨ♪試しに次のプログラムを試してみよう♪
ちなみに、LISPでは記号はデータの一種ピヨ♪LISPでは基本的に命令型言語の様な厳密な区別はないピヨッ。それがLISPの長所でもあり、分かりにくさでもあるんだよね♪ えっ?一々( quote x )ってタイプするのが面倒?そんな人の為に簡略式もあるピヨ♪
どう?簡単だよね?えっ?set関数の長所が分からない?もぅ我侭だね♪ set関数の長所は記号もデータという点ピヨ。だから、変数を返す関数をset関数の引数として使用できるピヨね♪という事は・・・
等といったメタプログラミングが堪能できるピヨッ♪つまり、set関数を使うと変数を関数の戻り値に出来るピヨ♪これすごいよぉー。リフレクションし放題♪想像力しだいでLISPは無限大の可能性を秘めているといえるピヨね♪ ちなみに、setqの名前の由来が分かった人居るかな?実はsetq関数とはset+quoteの略称なんだ♪って事は'すらも面倒だと思う怠惰なプログラマが居たって事かな♪怠惰はプログラマの美徳だから当然の結果だよね♪それに怠惰さだけではなくて、'を使用するよりもsetqの方が美しいピヨ。'は鳥目じゃあ見にくいからありがたいピヨォ。LISPの仕様が広大無比なのは、そういった美徳の結果なのかもしれないピヨ。だから、LISPは広大だと尻込みせずに、核を押さえたらいいピヨ♪それがLISP楽習のコツだっピヨッ♪ |
この記事のコメント |
コメントの投稿 |
||
|
|
||
| 管理者だけに閲覧 | ||
|
|
||
この記事のトラックバック |
|
| 無差別に技術をついばむ鳥 |
|