基本データ型 (1/2)


数は、Scheme では 5 階層を用いて扱われます(処理系が全階層を実装している保証は無い)。 これらの間では、integer は、 rational, real, complex, number として扱うことができ、 rational は real, complex, number として扱うことができ、 という関係が成り立っています。 値がどの type に属しているかを判断するために、 number?, complex? real?, rational? integer? などの関数が準備されています。

値がどの type に属しているかに応じて、実行できる関数が変わってきます。 また、有理数と有理数の計算であっても整数になる可能性もあります。 すこし、例を実行してみましょう。 これについては自分で色々遊んでみて下さい。 詳しい情報はこちらからたどれます。

> (* 3+4i 3-4i)
25
> (integer? (* 3+4i 3-4i))
#t
> (integer? (* 3 (/ 7 3)))
#t
> (integer? (debug-print "val0:" 
			  (* 3 (debug-print "val1:"
						   (/ 7 3)))))
val1:7/3
val0:7
#t

99.9.29/ Tomio KAMADA: kamada@cs.kobe-u.ac.jp