[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bep] learning lisp: if, and, cond



Koichi INOUE writes:

> 私はR高橋さんの答えを読んだときに、「あれ?条件が成立しないときのnil
> は?」と思ったのですが、よくよく考えると条件が成立しない→if内で最後に
> 評価された式の値がnilなので、それでいいということか、と感心してしまい
> ました。きっと自分ならなにも考えずにnilと書いただろうと思います。

「if 内で最後に評価された式の値が nil なので if の値も nil」、つまり
「if 全体の値は if の中で評価された最後のS式の値と同じ」という理屈です
か。んー、たしかにそういう考え方もできますね。

私は (if 条件 S式) という短い形の if は、「条件」が成立しなければアプ
リオリに nil を返すものだと考えていました。結果的には同じですけど。

> きっと自分ならなにも考えずにnilと書いただろうと思います。

プログラミング作法的には、明示的に nil を書いた方がいいと思います。私
は最近では、else 部分が必要ないときは if ではなくて when を使うように
心がけています。

-- 
TAKAHASHI Naoto
ntakahas@...
http://www.m17n.org/ntakahas/