#:g1: S式は可読性が良い

Posted 2022-03-08 15:11:00 GMT

S式は可読性が良い/悪いというのは定期的に話題になりますが、大抵の場合Code is Dataという観点が抜けています。
LispにおいてCode is Dataというのは必須の要件であり、コードとしてのデータの読み書きの容易さ、把握のしやすさを考えずに可読性を議論してもしょうがないと思います。
逆にいうと、Code is Dataという観点が必要とされない言語がS式を採用する意味はあまりないと思いますし、Code is Dataという観点が必要とされない言語の感覚や価値観でS式を語ってもしょうがないと思います。大抵は、式のパーズが楽とかそういう話にしかなりません。

古くはM式→S式のMS変換に始まり、数式処理システム向けの中置記法などもあったり、DylanのようにAlgol文法の採用などもありますが、S式以外は、大体どれもコードとデータを行き来することになります。

このような行き来をしないで一つの記法で済ませる方式がS式ですが、歴史的にはLisperは、M式→S式方式からS式に一本化することを選択したといって良いと思います。

Lisp編集では、エディタ上でもコード/データを操作する

Lispではデータでコードを記述しているので、エディタもリストデータを編集できれば良いということになります。リストと要素の操作に還元できるので、非常に操作感が統一されています。
コードの編集は、リストの要素を交換したり、追加したり、をすれば良いだけですが、S式以外の言語では、エディタが文法を理解している必要があり、大抵の場合はS式操作に比べればどこかに引っ掛かりがあります。 また、エディタ上でマクロの展開をしつつマクロを記述していったりしますが、マクロ記述/展開もまた単なるリスト操作であり、この辺りの記述とフィードバック情報の扱いやすさはS式ならではではないかと思います。

S式は、Code is Data、可読性、操作性、のバランスが絶妙なのです。


HTML generated by 3bmd in LispWorks 7.0.0

comments powered by Disqus