xlispは、Lispの処理系の一つで、Freeware (今風に言えば、Open Softwareですね.. )です。
xlispの起動は、xlwin32をクリックするだけです。そうすると、新しいwindowが開かれます。
そして、
XLISP-PLUS version 3.04 Portions Copyright (c) 1988, by David Betz. Modified by Thomas Almy and others. >
というメッセージが出ます。
以下、xlispとのやり取りは、このwindow内で行われます。
xlispを終了する場合は、windowの中で、
(exit)[Enter]
と入力します。
つまり、'(' [左括弧], 'exit'という英単語,そして')' [右括弧]の順に、キーボードから入力し、最後に、改行キー( [Enter]キー)を押すと、windowが消えます。
XLISP-PLUS version 3.04 Portions Copyright (c) 1988, by David Betz. Modified by Thomas Almy and others. > (exit)
まず、xlispで、12 + 34の計算をすることを考えます。このとき、キーボードから
(+ 12 34)
と入力してみてください。もちろん、最後に、改行を押します。すると、46という結果が表示されると思います。これは、確かに、12 + 34の計算結果になると思います。
> (+ 12 34) 46 >
ここで、注意して欲しいのは、'+'と'12'と'34'の間には、空白が必要で、逆に、'1'と'2', '3'と'4'の間には、空白を入れてはいけないということです。
整数同士の割り算を実行し、割り切れない場合、xlispは、この結果を「分数」として扱います。結果が整数になるのは、割り切れる場合だけです。
なお、普通の意味での整数割り算に関しては、後で述べます。
実数(小数点を含むような数)の割り算は、普通に実行されます。なお、その結果が、無限小数( 1/3 = 0.3333 ..,π= 3.1415 ... )になる場合は適当な長さで切り捨てられ、有限の長さの小数として扱われます。
つまり、この計算の結果には、「(まるめ)誤差」が含まれています。
計算機を扱う上で、このような「計算誤差が生じる」ということを意識するのは大変重要なことです。
今度は、12 + 34 * 56の計算を行います。これを行うには、次のように入力します。
(+ 12 (* 34 56))
すると1916という答えが出てくると思います。
> (+ 12 (* 34 56)) 1916 >
xlispでの割り算を計算するには"/"を使います。しかし、割り切れない場合には、答えが分数になってしまいます。
もし、普通の割り算を行おうとするならば、次のような性質を利用します。
「割られる数から、割られる数から割る数を割った場合の余りを引くと、その数は、割られる数で割り切ることができる。」
言葉で書くと分かりにくいのですが、次のような形にすれば、123を45で割った時の商の計算が可能です。
(/ (- 123 (mod 123 45)) 45)
> (/ (- 123 (mod 123 45)) 45) 33 >