コピー2018.07.14Emacs再入門13日目。Emacsの再入門中なのですが、脱線してLispの覚え直しをします。Lisp系、どちらを入門しようか迷ったことがありました。Lisp系が受け付けなかったので、Scheme系のLispの記憶だけがうっすら残ってる状態です。学び始めはこだわりを持ってはいたものの、結局どちらも物にできなかったので、くだらないこだわりでした。何かを学習しようとするとき、意味のない理屈を積み上げて、学習スピードを落とすことは勿体ないと思います。学べないって人はこういうタイプも多いのでしょうないのでしょうか。スキルのない人間に限って、論理武装していて技能が伴わないので、話してるときはノリノリなのだけど、手を動かすとすごく遅い、ってよく感じます。最近、寡黙な人ほど熟練者に見えます。Lispは、一番使われているLispなので、使いこなせたら、そりゃもう楽しいことこの上ないってことになると思います。Processorが名前の由来というぐらいで、全部リストでプログラミングします。リストは、()で囲んで、スペースで区切って表現します。足し算のプログラミングなら、+記号と、数値を並べれば完成です。20)30答えが次の行にプリントされました。複雑な計算も、リストを組み合わせることでできます。5))8リストなので、計算する数値は、2値だけでなく、たくさん並べることができます。5)15最大値を求める関数。40)50最少値を求める関数。-10)-10リストの先頭には、必ず式を置きます。このような値だけのリストでは、何もできません。30)じゃあ、ただのリストを表現したい場合はどうするか。式にlistと書きます。30)今度は評価されたので、結果が表示されましたね。プリントする関数で先ほどの結果を再度確認してみます。30)が2回表示されました。次は、リストとリストの足し算、できるでしょうか。60))評価結果が表示されませんでした。princを使って結果表示するとどうでしょうか。60))やはり何も表示されませんでした。40))ではないからです。リストを処理する関数は別にあります。appendを使ってみます。60)今度は評価されました。二つのリストが連結されて表示されました。~)と書くのが、面倒。多用すると見づらくなる気がします。クォートを使って書き方を変えることができます。