読者です 読者をやめる 読者になる 読者になる

yy_taroのとりとめのない落書き

メインフレームの導入・設計・構築ができるぐらいの知識があったりする。

「プログラミングの基礎」も読んでみる 3

プログラミングの基礎 3回目

 

六章〜七章まで読み終えました。

ここでは、組とレコードが登場。

組とレコードと言ってもC言語で言う所の構造体ですね。

これで、データの表現力が上がりました。

 

また、六章の二点間の中点を求める問題ではまりました。

let chuten point = match point with
*1 -> ( (x1 +. x2) /. 2.0 , (y1 +. y2) /. 2.0 )

 

(* test *)
let test1 = chuten2 (0.0, 0.0) (1.0, 2.0) = (0.5, 1.0)
let test2 = chuten2 (2.3, 5.1) (7.6, 1.7) = (4.95, 3.4)
let test3 = chuten2 (-3.8, -2.4) (3.4, -1.2) = (-0.2,-1.8)

 

test2とtest3がいくらやってもfalseとなり、小一時間ほど悩んでいました。

 

処理には問題がないのになぜかfalseになる。

 

答えを丸写ししてもfalseになる。

 

という謎の状態でした。

 

結論から言うと正解でした。

どうも「( 2.3+7.6 ) / 2 」の答えが「4.94999999999999929」となっているみたいです。

これでは、いくらやってもfalseになりますね。

 

こんなところでハマる人は私だけかもしれませんが、ご注意ください。

 

プログラミングの基礎 (Computer Science Library)

プログラミングの基礎 (Computer Science Library)

 

 

*1:x1 , y1) , (x2 , y2