週に一回は書きますよ 月に4つ記事を書けばノルマは満たされます。
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
週記 2006/6/27 より
やっちまった
なんかグラフの形が変だなーと思って解析プログラムを眺めていたら。 

let xi = int_of_float (x /. !step) in
        Objective Caml version 3.09.2
# int_of_float 0.1;;
- : int = 0
# int_of_float (-0.1);;
- : int = 0                
典型的なミスに引っかかっていたorz 

floor,ceilを使うように慣れておけばこんな罠にかかることはありません。しかしOcamlだとこれらの関数はfloat->floatなので、intがほしいときはその後ちゃんとint_of_floatしないといけません。

調べた範囲では、floor,ceilがfloat値を返すのはOcaml,C,Javaなどで、Haskellは整数を返してくれます。Haskellのほうが合理的な気がします。前者の言語では、float値を返したほうがいい理由があるんでしょうか。

ありました。かなり決定的な理由が。以下 http://jp.php.net/ceil より引用。

value の次に大きい整数値を返します。 ceil() の返り値は float 型と なります。これは、float 値の範囲は通常 int よりも広いためです。

なるほど。これではintを返せません。Haskellは多倍長整数が扱えるので大丈夫ですが。

スポンサーサイト
コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://gusmachine.blog49.fc2.com/tb.php/31-78cd3a47
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。