「ほっ」と。キャンペーン

とりとめのないことを書いております。
by tempurature
カテゴリ
全体
プログラミング
scheme
verilog
未分類
以前の記事
2016年 04月
2016年 03月
2016年 02月
2016年 01月
2015年 12月
2015年 11月
2015年 10月
2015年 09月
2015年 08月
2015年 07月
2015年 06月
2015年 03月
お気に入りブログ
PHPで競技プログラミング
メモ帳
最新のトラックバック
ライフログ
検索
タグ
人気ジャンル
ブログパーツ
最新の記事
情報処理技術者試験 お疲れ様..
at 2016-04-17 18:55
基本情報技術者試験 平成27..
at 2016-04-14 04:48
基本情報技術者試験 平成27..
at 2016-04-13 23:03
苦い薬(ハーブ、サプリメント..
at 2016-04-09 14:03
「おバカ度チェックリスト」を..
at 2016-03-24 09:54
外部リンク
ファン
記事ランキング
ブログジャンル
画像一覧
結局Lispとは何だったのか?
CやJavaでプログラミングをしていると、なんで同じようなコードを何度も何度も書かなければならないのかと考えこむことがある。または、プリプロセッサ仕事しろとか、云々。

現代的な意味において、Lispとはそれに対する合理的な解の1つであるように思う。つまり、ソースコードの中で文法を記述できるとするならば、どのくらい効率的かということだ。

今の私の感覚で言うと、こんな感じ。

・コード効率はCの2倍(とはいえライブラリが貧弱なのでむしろ効率悪い)
・単純なくせに難易度が高い
・可読性はよくない
・実行効率もLL言語より悪い

大体、つい最近まではLL言語はプログラミングができない人がやるものだと思われていたが、LL言語というのはLispとCが下地にあって、両方のいいとこどりをしている。だからLisp言語でいいところといったらマクロくらいしか思い浮かばないのだ。

とはいえ、schemeはやっておくと他の言語で書いた時もソースコードがキレイになるというのは本当だと思う。Lispというのはある意味Cよりも危うい言語で、その中でソースコードが書けると他の言語でも難なく書けるというボディビルディングのような側面がある。また、ライブラリを考慮しなければコード効率は最強なので、他の言語のソースコードも、最適な記述方法なのかヘボいコードなのかを一発で見ぬくことができるようになる。

あと、言語の難易度はracket < scheme < Common Lispだと思っていたが、むしろCommon Lisp < scheme < racketではないかと思っている。

racketは環境が一番充実していて素晴らしいのだが、まず日本語のドキュメントが皆無、英語のマニュアルもどことなく計算機科学者向けのまどろっこしい説明になっていて困る。racketはschemeとCommon Lispのいいとこどりの言語らしいのだが、どこかschemeとCommon Lispを両方理解しているものとしてマニュアルを書いているような感がある。よって一番難解。

schemeは、定本がなくて困る。SICPは読むのを断念した。

Common Lispは、ポール・グレアムのANSI Common Lispが一番安心できる定本であるように思う。Common Lispの難易度はC++と同じくらいなのではないかと思う。

[同日 追記] schemeについては、「プログラミングGauche」という本が一番よさげなので、読んでみて、よければ記事を書き直したいと思います。

[PR]
by tempurature | 2015-10-12 19:09 | プログラミング
<< 【racket】ソーシャルゲー... 経験でものをいう人は矛盾した言... >>