練習問題 (はじめに)


1.1
二つの実数 a, b を受けとり、二乗和(つまりa*a+b*b)の平方根を返す関 数 sqsum を書け (ヒント: 平方根は関数 sqrtを使う)。

解答例

1.2
二つの実数a, b を受けとり、絶対値の大きい方の値をそのまま返す関数 absmax を書け。ただし、絶対値が等しい場合はaを優先するものとする。(ヒ ント: 絶対値は関数 abs を使う)。

解答例

1.3
a, bをうけとり、a, b ともに数字の場合はその和を返し、 ともに文字列の場合は文字列を繋げたものを返し、 それ以外のときは 0 を返す関数 num-str-add を書け。 (ヒント: 文字列を繋げたものを求めるには、string-append を用いる)

解答例

1.4
西暦の年号を与えられた時、うるう年かどうかの真偽値を返す関数 leap を書け。ただし、うるう年とは、原則としては4で割り切れる年であるが、100 でも割り切れるならば、400でも割り切れなくてはならない。(つまり、西暦 2000年は、100で割り切れるが、400でも割り切れるのでうるう年である)。
(ヒント: 余りを求めるには関数 modulo か関数 remainder を使う。 両者の違いは負の整数に対して用いた時に現れる。)

解答例


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