[過去ログ] 関数型プログラミング言語Haskell Part16 (978レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
42(2): デフォルトの名無しさん [sage] 2011/10/08(土) 15:43:03.24 AAS
>>4040(2): デフォルトの名無しさん [sage] 2011/10/08(土) 14:49:12.57 AAS
FFI の質問です
C 言語で書かれた、FILE 構造体のポインタを引数として取る関数を
Haskell 側から使いたい場合、Haskell の openBinaryFile 関数などで得た
Handle 型の値は使えないのでしょうか(Handle 型を CFile 型に変換するなど)
もしかして、C 言語の open 関数も import して使う必要がありますか
open関数? openはファイルディスクリプタを返して、FILE構造体へのポインタを返すのはfopenでは?
一般論としては、CレベルのfdやFILE *を使いたいなら、Cのopenなりfopenなりをインポートする必要がある。
GHCの場合、System.Posix.Internals.c_open が Cのopenのラッパーなので、ファイルディスクリプタで良いなら、何とかこれを呼べばよいだろう。
でも、FILE *のほうは自分でfopenをimportするしかないと思う。
133: デフォルトの名無しさん [sage] 2011/10/15(土) 10:16:07.24 AAS
人気が出て来た所に粘着君が出るのは、啓蟄みたいなもんだ。
180: デフォルトの名無しさん [sage] 2011/10/17(月) 23:01:04.24 AAS
>>179179(2): デフォルトの名無しさん [sage] 2011/10/17(月) 22:52:36.79 AAS
haskellって、コンパイルしたらJavaバイトコードのような
中間言語を吐き出すのでしょうか?
それとも機械後を吐き出してくれるのでしょうか?
それは言語の仕様ではないので厳密には実装によるが、デファクトスタンダードのGHCは基本的にネイティブコードを吐く。
355: デフォルトの名無しさん [sage] 2011/11/04(金) 09:33:28.24 AAS
haskellをカタカナで書くのって違和感があるんだけど、
そんな書き方をしているのはどんな人なの?
414: デフォルトの名無しさん [sage] 2011/11/08(火) 14:09:30.24 AAS
emacsにもあるよ
精精\をλにぐらいだなぁ
419(1): デフォルトの名無しさん [sage] 2011/11/08(火) 23:20:26.24 AAS
>>403403(1): デフォルトの名無しさん [sage] 2011/11/07(月) 22:31:25.21 AAS
.cabalに:set -Wall
ただし相当うざいから覚悟すべし
ありがとう。ただcabalの設定ファイルだと俺の環境ではうまく行かなかった
それを手がかりに調べて、ホーム\AppData\Roaming\ghc\ghci.confに書いたらうまくいった
-Wall付けたら警告いっぱい出て、パターンマッチが網羅されてないとか役立つのもあったけど
ただ数値のデフォルト化の警告?ってのがよく分からん
警告なんだから良くないコードなんだろうけど
書く環境はやっぱりemacsが多いのか
今まであまり使ってなくて不慣れだけど頑張ってみるよ
472: デフォルトの名無しさん [sage] 2011/11/12(土) 12:18:07.24 AAS
>>471471(1): デフォルトの名無しさん [sage] 2011/11/12(土) 08:11:04.13 AAS
ListはもうEducationalモジュールに引っ越せ
引っ越したとして、代わりに何を標準ライブラリに入れるの?
今までの List と互換が無ければ今まで作ってきた資産が死ぬし、
さもなければ互換性を捨ててでも入れる大きなメリットがあるものじゃないと
492(1): デフォルトの名無しさん [sage] 2011/11/12(土) 17:42:05.24 AAS
>>489489(1): デフォルトの名無しさん [sage] 2011/11/12(土) 17:23:06.27 AAS
>>487
Haskellの名前空間はフラットだよ
階層化されているから名前が衝突しないってのが良く分からん
実例かポインタある?
>SMLなら名前空間は(Rubyと同じように)階層化されているから、
Rubyで衝突を気にしなくていいのはメソッド名の解決に型情報を使う
(正確にはレシーバがメソッド名を実行時に解釈する)からであって、
階層化うんぬんは関係なくね?
>実例かポインタある?
階層化されたディレクトリの無いファイルシステム(CP/Mや初期のMS-DOS)
過去の階層化されていないWindows Network(NetBIOS)
名前の衝突回避と階層化との関連はコンピュータ科学の知識があれば常識だよ
>階層化うんぬんは関係なくね?
Rubyのインスタンスメソッドについては、その通りだね。
ただし、Rubyにはクラスメソッドあるいはモジュール関数という概念がある。
これらのメソッドは(実際の実行は動的であっても、)構文上は静的に解釈できる。
ここで、M::N::O.func と M::N.func は同じモジュール関数名 func を使っているけど、
それぞれ名前空間が M::N::O と M::N とで異なっているから静的に区別できる。
515: デフォルトの名無しさん [sage] 2011/11/13(日) 01:16:28.24 AAS
やさしいHaskell入門 型クラスと多重定義
外部リンク[html]:www.sampou.org
Haskell vs OOP
外部リンク:d.hatena.ne.jp
OOP vs type class
外部リンク:www.haskell.org
↓こういう考えかたも、分かりやすいと思うんだけどな。
Clojureは、皆さんがオブジェクト指向から望む多くのものを提供 *して* います。
外部リンク:www.infoq.com
631: デフォルトの名無しさん [sage] 2011/12/01(木) 19:34:11.24 AAS
Data.Bitsのお世話になった事があったのはGUIでフラグ渡す時くらい。
632: デフォルトの名無しさん [sage] 2011/12/01(木) 21:16:47.24 AAS
grepしてみたら乱用してた
代数的データ型だと遅すぎるから手動でIntのビットフィールドに押し込めるとか
642: デフォルトの名無しさん [sage] 2011/12/02(金) 18:01:00.24 AAS
>>641641(1): デフォルトの名無しさん [sage] 2011/12/02(金) 17:55:57.58 AAS
>>639
じゃあ、そういう部分だけ C 用の高速ライブラリを使えば良いのではないか?
探したことないから知らんが、商用とかではいくらでもあると思う
Data.Bits を使う理由がないな
ああ、Data.Bitsの話だったか。
928: デフォルトの名無しさん [sage] 2012/01/01(日) 22:36:12.24 AAS
和田サンは鞍とキーボードを同一視するくらいの人だからな
モナドとIOなんて同じようなもんなのだろう
達観してる
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.041s