嫌われプログラミングの代弁者

「何で頭ごなしに嫌う人間が居るのか」を色々考える

初歩的なLISP言語の大変さ 1

どの様な話?

愛機だったMZ80Cのカセットテープで動く、LISP言語での経験しか無いですが、ほぼ動きませんでした。

まず前提として、そのLISP言語は、

  • readとかの機能が無い、副作用が無い
  • データはリストで(全てを予め)渡す
  • リストのcar部を使い、次の処理(関数の再帰)へcdr部を渡す感じ
  • 渡されたデータの内容が、関数が必要とする形式(アトムだったりリストだったり、数字だったり文字列だったり)を完全に満たさないと、即apply error。
  • 渡されるデータの内容の形式と少しでも離れた、関数の改造をすると、即apply error。
  • 明けても暮れてもapply error。

でした。

その場で必要な値を得るread機能が無い、副作用が無い素晴らしい処理系の筈と、普通思うじゃないですか?

そんな事は全く有りません。

入力のデータのリスト構造と、関数の連鎖構造が密着して、少しも融通が利かない状況に不可避でなる様な(どうする事も出来ない、絶望的な)処理系でした。

 

どうするのが良いか?

  • 大データに絡みつく様に関数が実行され、欲しいデータや作りたいデータをその場その場で機動的に、大データの読み書き(副作用) を本質的な実行内容とする様な処理系

こそが、初歩的なLISP言語(関数のチェーンだとかいう議論と同じ様な状況?)を扱う者から見た理想のイメージだったと思います。

 

結論

もう、初歩的なLISPを使う人もいないでしょうから、今後これでプログラミングが嫌いになる人は出ないでしょう。