[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
learning lisp: when
- To: bep@argv.org
- Subject: learning lisp: when
- From: TAKAHASHI Naoto <ntakahas@m17n.org>
- Date: Tue, 19 Jun 2001 13:59:03 +0900 (JST)
- Delivered-To: mailing list bep@argv.org
- Mailing-List: contact bep-help@argv.org; run by ezmlm
- User-Agent: SEMI/1.14.3 (Ushinoya) FLIM/1.14.2 (Yagi-Nishiguchi) APEL/10.2 Emacs/21.0.104 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI)
n高橋です。
Koichi INOUE writes:
> あ、ifのヘルプにきちんと仕様が明記されていますね。
> 最後に評価された式という話ではなく、そういうもののようです。
あ、本当だ。
> whenはCにはないタイプのspecial formなのでどうも直感的に使えませんでし
> た。今後はそうします。
え? Lisp の when は、C の if 文で else 文が後続しない場合そのものじゃ
ありませんか。
#include <stdlib.h>
#include <stdio.h>
main (int argc, char *argv[])
{
double x, y;
x = atof(argv[1]);
y = atof(argv[2]);
if (y == 0) {
fprintf(stderr, "Second argument must not be zero\n");
exit(-1);
}
printf("%f / %f = %f\n", x, y, x/y);
}
の if を Lisp の when にすると、
(when (zerop y)
(print "Second argument must not be zero\n")
-1)
ですよ。
--
TAKAHASHI Naoto
ntakahas@...
http://www.m17n.org/ntakahas/