[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [bep] learning lisp: if, and, cond
- To: bep@argv.org
- Subject: Re: [bep] learning lisp: if, and, cond
- From: Koichi INOUE <inoue@argv.org>
- Date: 19 Jun 2001 13:13:04 +0900
- Delivered-To: mailing list bep@argv.org
- Mailing-List: contact bep-help@argv.org; run by ezmlm
- Organization: Accessibility Research Group for the Visually Impaired(ARGV)
- User-Agent: T-gnus/6.15.4 (based on Oort Gnus v0.04) (revision 01) SEMI/1.14.3 (Ushinoya) FLIM/1.14.2 (Yagi-Nishiguchi) APEL/10.3 Emacs/21.0.103 (i686-pc-linux-gnu) MULE/5.0 (SAKAKI)
井上です。
TAKAHASHI Naoto <ntakahas@...> writes:
> 上の書き方でいいんですが、もし明示的に nil を返したいのなら、そのまま
> nil と書けばいいんですよ。もちろん nil もS式です。たとえば
>
> (defun meaningless (arg) nil)
>
> とすると、何を引数に与えても nil を返す無意味関数 meaningless が定義で
> きます。
>
> もし仮にR高橋版 fact を、明示的に nil 返すように書き変えるなら、
>
> (defun fact(n)
> (if (and (integerp n) (>= n 1))
> (if (= n 1)
> 1
> (* n (fact (- n 1))))
> nil))
>
> ですね。
私はR高橋さんの答えを読んだときに、「あれ?条件が成立しないときのnil
は?」と思ったのですが、よくよく考えると条件が成立しない→if内で最後に
評価された式の値がnilなので、それでいいということか、と感心してしまい
ました。きっと自分ならなにも考えずにnilと書いただろうと思います。
--
Koichi Inoue, ARGV
E-Mail: inoue@...
ICQ UIN: 74900690