バリケンのRuby日記 RSSフィード

2008-03-17

[] 四則演算  四則演算 - バリケンのRuby日記 を含むブックマーク はてなブックマーク -  四則演算 - バリケンのRuby日記  四則演算 - バリケンのRuby日記 のブックマークコメント

まずは、Lispで四則演算(足す、引く、掛ける、割る)をやってみるよ。

Lispでは、式を(関数名 引数1 引数2 ‥‥)のように書くんだって。じゃあ、CLISPのウインドウを起動して実験してみよう!まずは足し算。加算は「+」という関数を使うよ。

[1]> (+ 2 3)
5
[2]>

ちゃんと2足す3の結果5が返ってきたね。じゃあ、引数を3つにしたらどうなるかな?

[2]> (+ 1 2 3)
6
[3]>

引数が3つの場合でも、すべての引数を足した値が返ってくるんだね。

同じように、引き算も試してみるよ。減算は「-」という関数を使うよ。

[3]> (- 7 4)
3
[4]> (- 9 6 3)
0
[5]>

引き算の場合は、最初の引数の値からどんどん引いていくんだね。

次は掛け算。乗算は「*」という関数を使うよ。

[5]> (* 3 3)
9
[6]> (* 2 3 4)
24
[7]>

その次は割り算。除算は「/」という関数を使うよ。

[7]> (/ 2 3)
2/3
[8]>

ありゃ、割り算で割り切れないと分数になるんだね。小数表現にしたいときは、Rubyみたいに割る側を小数で現せばいいかな?

[8]> (/ 2 3.0)
0.6666667
[9]>

そうみたい。

[9]> (/ 24 2 3)
4
[10]>

割り算の場合も引き算のように、最初の引数の値からどんどん割っていくんだね。

余りを求めるには、「mod」という関数を使えばいいみたいだよ。8割る3は、2余り2だから、

[10]> (mod 8 3)
2
[11]>

ちゃんと2が返ってきたね。

そういえばRubyのような「演算子の優先順位」ってないのかな?たしか足し算や引き算よりも、掛け算や割り算のほうが優先順位が高いんだよね。

[11]> (* (+ 2 3) 4)
20
[12]>

うーん、そもそも2項演算子じゃないんだから、カッコで計算の順序が決まってしまうよね。だから「演算子の優先順位」という考え方自体がないのかな。

あ、ウインドウを終了させるときは「(quit)」または「(exit)」だったね。

[12]> (exit)
トラックバック - http://rubyist.g.hatena.ne.jp/muscovyduck/20080317