Emacs Part 47 [転載禁止]©5ch.net
■ このスレッドは過去ログ倉庫に格納されています
0710名無しさん@お腹いっぱい。
2015/03/10(火) 16:00:24.68if の使い方を見ると、大抵その人が Lisp に浸っているかどうかが分かる。
手続型言語から見ると if は「制御文」であり、処理の流れを切り替えるために 使う。たとえばこんな風。
(if need-hogehoge
(setq foo "hogehoge")
(setq foo "fugafuga"))
ああ、もったいない。if もやっぱり関数(厳密にはスペシャルフォーム)なのだ。
ifは第一引数の値 に応じて第二引数を返すか、第三引数以後の最後のものを返すかするという関数 である。
(setq foo (if need-hogehog "hogehoge" "fugafuga"))
これで、ifが返してくれる値を捨てることなくsetqに拾わせることができる。
とにかくLispは値が命。無駄に値を捨てない。もったいないお化けを出さない。
■ このスレッドは過去ログ倉庫に格納されています