Getting Started in lisp
Publish date: Dec 19, 2021Tags: life Tech
Table of contents
なぜ Lisp に入門したのか
もともと Emacs の設定をするときに 「おおもとである Lisp の言語設計の思想を少しでも理解することで Emacs の設定にいかせるのでは?」 というモチベーションで、Lisp について調べていた。
例えば、leaf みたいなパッケージ管理を使うと、本来なら自分で制御できる範囲の根っこの部分が他人依存になってしまうから使わないようにしていこうと考えた。
ただ、そもそもその判断に妥当性があるのかイマイチ自分自身で納得できなかった。どこまでを自分で制御可能な射程距離だと考えるのかにもよるのかもしれない。
調べていくなかで Lisp の言語設計の思想が Emacs の設計思想に影響を与えているように感じた。本体を小さくして必要に応じてモジュールを追加していく、そのモジュールも自分自身で実装していく(それが簡単にできるようになっている)といった価値観なんだなぁと思った。
わたしは、機能性の高いペン立てが欲しくて探したけれども、どれも自分の欲しい機能を満たしていないし、そもそも将来的にどういった機能が欲しくなるかも未知数で
「長く使いたいからこそ、最小構成で尚且つ拡張性の高いペン立ては存在するのか?」
と考えたときに、レゴブロックでペン立てを作れば良いと思った。
探したら、実際にレゴでペン立てを作る人たちは一定数いた。
きっと彼らは Lisper ないしは、その価値観に共感する可能性の高い潜在的 Lisper なのかもしれない(?)
入門してみて
とりあえず近所の本屋に行って、検索機で「Lisp」と入力して、出てきた本を買って入門してみた。
「括弧がそのまま構文木を表現している」と知ったときは、確かにそうだわ、そのまま図になる!と感動した。これは図で理解するタイプには分かりやすそう。
演算式であっても前置記法という部分で「アセンブリもそうだったな」と思い出して、リストのメモリ配置の部分では「アセンブリでは自分でやらんといけんかったわ……」と、思い出した。普段コードをあまり書かないので、比較対象がOS自作のさいに触ったアセンブリ言語になってしまう。
全体的にシンプルで入門向きな言語だと感じた。これで Emacs の設定も捗ると良いなぁ。(捗るのか?)