2. Scheme を電卓代わりに使う

四則演算

四則演算の例:

guile> (+ 10 2)
12
guile> (- 10 2)
8
guile> (* 10 2)
20
guile> (/ 10 2)
5
guile> (+ 10.0 2.0)
12.0
guile> (- 10.0 2.0)
8.0
guile> (* 10.0 2.0)
20.0
guile> (/ 10.0 2.2)
4.54545454545454
guile> (/ 29 3)
29/3
guile> (/ 3750 260)
375/26
guile> (+ 1 2 3 4 5 6)
21
guile> (- 1 2 3 4 5 6)
-19
guile> (* 1 2 3 4 5 6)
720
guile> (/ 1 2 3 4 5 6)
1/720

注意, Scheme は分数を扱うことができる. 浮動小数点に変換したいときに, exact->inexact を使うこと:

guile> (/ 270 35)
54/7
guile> (exact->inexact (/ 270 35))
7.71428571428571

練習問題 1

P1. (1+39)*(53-45):

guile> (* (+ 1 39) (- 53 45))
320

P2. (1020/39)+(45*2):

guile> (+ (/ 1020 39) (* 45 2))
1510/13
guile> (exact->inexact (+ (/ 1020 39) (* 45 2)))
116.153846153846

P3. 39, 48, 72, 23, 91 の合計:

guile> (+ 39 48 72 23 91)
273

P4. 39, 48, 72, 23, 91 の平均を小数で:

guile> (exact->inexact (/ (+ 39 48 72 23 91) 5))
54.6

その他の算術関数

商を求めるには quotient

余りを求めるには remainder, modulo

平方根を求めるには sqrt

実際の例をやると:

guile> (quotient 10 3)
3
guile> (modulo 10 3)
1
guile> (remainder 10 3)
1
guile> (sqrt 9)
3.0
guile> (sqrt 2.0)
1.4142135623731

三角関数

特殊な角の三角関数値

_images/sincostan2.gif

sin, asin, cos, acos, tan, atan が使える:

guile> (sin 1.05)
0.867423225594017
guile> (cos 1.05)
0.497571047891727
guile> (tan 1.05)
1.74331530998317
guile> (asin 0.86)
1.03526967248051
guile> (acos 0.49)
1.05870657386075
guile> (atan 1.74)
1.04917802969851

指数関数, 対数関数

指数関数: exp

自然対数: log

a の b 乗: (expt a b)

練習問題 2

P1. 円周率 (PI):

guile> (acos -1.0)
3.14159265358979
guile> (* 4.0 (atan 1.0))
3.14159265358979

P2. exp(2/3):

guile> (exp 2/3)
1.94773404105468
guile> (exp (/ 2 3))
1.94773404105468

P3. 3 の 4 乗:

guile> (expt 3 4)
81
guile> (expt 2 8)
256
guile> (expt 2 10)
1024

P4 1000 の自然対数:

guile> (log 1000)
6.90775527898214
guile> (log 1024)
6.93147180559945