2014年2月5日水曜日

[Land of Lisp] 4章 条件と判断 メモ

休みに入ったし、Lispを勉強し直そうと思ってLand of Lispを読み始めている。
Lispの本を読むのはいつだったか読んだ「初めての人のためのLisp」以来か。
SLIMEインストールした時とかちょっと触ったりはしてたんだけどね。
quoteの理解が中途半端だったけどデータモードとコードモードという説明のおかげで理解がはっきりしつつある。

本を読んでちょっと試しにコードを書いてみようとしたら怒られた。

temp1が無いぃ? そりゃそうだ、ここで定義しようとしたんだから。
と、そこでsetqが定義ではなく束縛だと気づいた。ごっちゃにしてた。
というわけでdefparameterを使って本来やりたかったことを。
正直(1. 2)でなくていいのだけど、なんとなくこう書いてしまったので。

temp1とtemp2を定義。中身は一緒。途中で一応なか見を確認。
さてこれを比較。読んでた内容、4章の比較関数についての確認。

中身が一緒なのにeqでは違うと言われ、equalでは同じと返る。
「より進んだLisperは、ある種の状況のもとではコンスを敢えてeqで比較することがある」とある。ふむ。

つまりこういうことか。temp1とtemp1でeqが一緒なのは当たり前として、temp1をtemp2で束縛するとeqでも同じになる。
eqでは変数のポインタ(アドレス?)を比較し、equalでは評価した値を比較という感じだろうか。
確かこれ初めてのPythonの説明でも同じ感じのあったな。Rubyもこんな感じだったような。
確認してしまえばそこまで悩まなかった。
問題はマクロとかそれ以降だ……

ところでBlogにコード(特にLispのコード)載せる際、手軽でいい感じにハイライトしてくれる設定とかないですかね。

(10:26 更新)
とりあえずgistで。これが一番簡単でかつ覚えていやすい方法かな。
でも投稿編集画面をHTMLと行ったり来たりするの面倒だな。
なんとかしてMarkdown記法でblog投稿できないだろうか。

なんか軽くググった程度で手段は色々みつかった。皆考えることは同じらしい。
しかし今回はちょっと面倒なのであとにしよう。
しかしはてなブログはデフォルトでMD対応ですか……ブログ選択間違ったかなぁ。


0 件のコメント:

コメントを投稿