[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 06/18 14:14 / Filesize : 205 KB / Number-of Response : 798
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

関数型プログラミング言語Haskell Part18



18 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 16:08:26.89 ]
>>16
リンク先では、hsc2hs で作った Enum 型を
次のように使って C 言語側の関数に渡しています(途中省略しました)

status <- c_qag gsl_f
  (realToFrac a)
  ・・・
  (rule gauss)
  ・・・
  errorPtr

この c_qag gsl_f 関数は名前や使われ方から見て
きっとどこかで foreign import されていると思いますが、
リンク先のページにはその定義は書かれていませんね

しかし、おそらく c_qag gsl_f :: CFloat -> ・・・ -> CInt -> ・・・
のような定義だと思います(そうでなければ型エラー)

これ、c_qag gsl_f (realToFrac a) ・・・ 100 ・・・ errorPtr
のように使用しても型エラーにならずにコンパイルが通ってしまいますよね

import された実際の C 言語側の関数で、不正な値の引数を検知して、
戻り値でエラーコードを返すような定義になっていればまだ良いのですが、
そうでなければ何が起こるか分からず、危険です

Haskell 側でこの 100 というリテラルをコンパイル時にエラーとして検知できないか、
という趣旨の質問でした






[ 続きを読む ] / [ 携帯版 ]

全部読む 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<205KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef