最新 RSS

tips@free BLOG

レトロなマイコン、電子工作、PCやフリーソフト関係のTipsと私的備忘録

2014/01/18

[z80][xlisp]自作Z80 CP/Mマシン(38)

引き続き XLISPのメモ。

一応動くようになり、簡単なプログラムを動かしていると if関数がおかしいことに気づきました、 例えば (if t 1 2) を評価させるとエラーになってしまいます。

付属のドキュメントを見ると if関数は (if <texpr> <expr1> [ <expr2> ]) で <txpr>は条件式、 <expr1>は真の時に評価で必須、 <expr2>は偽の時に評価で省略可となっています。

また、 (if t (1)(2)) のように引数をリストにするとエラーになりませんでした。

XLISP version 1.1
> (if t 1 2)
error: bad argument type    <- エラーになる
(if t 1 2)

> (if t (1)(2))
1                <- こちらは1が返ってくる

LISPと言えば emacsなんで、 scratchで試してみると、、

(if t 1 2)
1                              <- 1が返ってくる
(if t (1)(2))
Lisp error: (invalid-function 1)  <- こっちでエラーになる

やっぱりおかしいようです。

(環境は CP/M Z80 HI-TECH C ver3.09でコンパイル)

コメント
お名前 コメント