[過去ログ] 関数型プログラミング言語Haskell Part19 (1001レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
936: 2012/10/05(金)00:04 AAS
チューニング時間が10倍になって相殺される
937: 2012/10/05(金)00:18 AAS
「すごいHaskellたのしく学ぼう!」が今のところ日本語の書籍ではダントツだと思うけど
C言語とかにどっぷり浸かってる人なら「ふつうのHaskellプログラミング」もいいと思うよ
938: 2012/10/05(金)03:16 AAS
初めて知ったが、面白そうなんで貼ってみる。
外部リンク:www.well-typed.com
The New Cloud Haskell
939(1): 2012/10/05(金)13:22 AAS
>>925
これ絶版ですかね (´・ω・`)
940: 2012/10/06(土)17:24 AAS
>>939
Amazon UK でまだ売ってる。
本体は38.99ポンド
通常発送(遅い方)の場合、
Amazon UK の設定するレートなら6196円で買える。
ポンドで買う(カード会社がレート設定する)なら46.97ポンド。
941: 2012/10/06(土)23:21 AAS
>>925
読んだこと無いけど米密林では評判悪いね
942(1): 2012/10/07(日)00:48 AAS
「Algorithms: A Functional Programming Approach」はアルゴリズムというよりは、
どちらかというとアルゴリズムを最適化するテクニックを多く学べる感じだ。
第3章からが本番。
関数の簡約の様子が詳しく書かれている。
所々、おまけでヒープの変化の様子を描いた図もある。
Burstall-Darlington 変換の考え方が学べる。
第4章のListの節はなかなか面白かった。
細かな最適化の話なんだが、関数合成時の中間データを省くテクニックや、
計算速度的には余計な結合演算(++)を取り除いたりするテクニックが学べる。
(後者はちょっと目から鱗だった)
省12
943(1): 2012/10/07(日)00:51 AAS
一方「Pearls of Functional Algorithm Design」の方は、
各章毎に最初に「**がしたい」という課題が提示され、
その問題を解決するアルゴリズムをチープなものからハイレベルなものへと
徐々に進化させながら解説する本だ。
各章で、たいていは最初に "specification" と言って、
その問題の解を導く関数が持つべき性質が Haskell の文法で示される。
で、その specification を素直に満たす関数をまず作り、
そして、どこがなぜ非効率なのかを解説しながら少しずつ改良させていくわけだ。
ちになみに、タイトルには無いが、こちらも Haskell の本だよ。
944: 2012/10/07(日)04:00 AAS
ゆうくんはHaskell本のだいせんせいなんだねぇ
945: 2012/10/07(日)07:18 AAS
>>942,943
くわしい解説ありがとう!
946: 2012/10/07(日)08:45 AAS
へーどっちも結構面白そうだな
おらなんだか欲しくなってきたぞ
947(1): 2012/10/08(月)13:12 AAS
ghcにおいて、最適化オプションの有無によって
コンパイルするコードを変える事はできるでしょうか。
例えば、#ifdef #else #endif で分けるとか。
948(1): 2012/10/08(月)13:42 AAS
>>947
C Pre-processor はどの言語でも使える嫌われてもいいのならバンバン使えばよい
949(1): 2012/10/08(月)13:48 AAS
>>948
最適化オプション有りだとどんな名前のディレクティブが定義されるのでしょうか。
950(1): 2012/10/08(月)14:14 AAS
>>949
いや、.hs を c の処理系ならもれなくついてくる cpp にかければいいというだけだ
cpp の持っているディレクティブならなんでも使えるはずだ
外部リンク:en.wikipedia.org
嫌われても知らない
951(1): 2012/10/08(月)14:20 AAS
プラグマ
外部リンク[html]:www.kotha.net
外部リンク[html]:www.haskell.org
952: 2012/10/08(月)15:30 AAS
>>950
c の処理系ならもれなくついてくる cpp にかければいいと言いますが、
ghc なら -XCPP オプションを付ければ .hs ファイルの中で #ifdef などが直接使えるので、
あとは最適化オプションを付けたときに、ghc 側でどのようなディレクティブが
自動で定義されるかが分かればできそうです。
それが分からないんですけどね。
>>951
プラグマを使って最適化時にコンパイルするコードを変える方法が
載っていないような気がするのですが、見落としてますでしょうか。
953: 2012/10/08(月)18:58 AAS
まともな方法はないと思う
理論的には、Template Haskellは任意のIOを実行できるので、
OSの機能を使ってGHCに渡されてるオプションを調べたり、
デバッガを起動してGHCのメモリ内容を見たりすることは可能
954(1): 2012/10/08(月)19:17 AAS
そういうのはビルド環境のツールでやればいい。
CabalとかSetup.hsとかmakeとか。
コンパイラになんでも詰め込んでしまうとろくなことない。
955: 2012/10/08(月)19:31 AAS
>>954
コンパイラでやるのと Cabal でやるのとで、何か違いがあるのですか?
956: 2012/10/09(火)10:51 AAS
baka
957: 2012/10/09(火)12:13 AAS
AA省
958: 2012/10/09(火)23:44 AAS
#lineディレクティブってghcは認識してくれるんだっけ?
959: 2012/10/09(火)23:50 AAS
自分で調べろカス
960: 2012/10/10(水)01:02 AAS
cppをプリプロセッサとして使えるらしいからOKのはず
961: 2012/10/10(水)01:19 AAS
wxHaskellとgtk2hsの簡単な比較
起動時間比較 wx3秒。gtk0.5秒
導入の簡単さ wxの方が難しい
GUIコードの長さ wxの方が短い
以上、チラ裏でした
962: 2012/10/10(水)07:04 AAS
GUIコードの長さってたいして変わらんと思うが
それよりも、wx は ghci 上で動かないのが痛い
963(1): 2012/10/10(水)19:52 AAS
すごいH本でHaskell始めたのですが,質問です.14章1節のWriterでつまずいています.
エラーになってる関数は使っていませんが気にしないでください...
外部リンク:ideone.com
なコードが
Hoge.hs:7:18:
Couldn't match expected type `(a0, b0)'
with actual type `Writer w0 a1 -> (a1, w0)'
In the second argument of `($)', namely `runWriter'
In the expression: fst $ runWriter
In an equation for `getValue': getValue = fst $ runWriter
省2
964(1): 2012/10/10(水)20:19 AAS
>>963
(fst $) の型は (a, b) -> a だ。
これは、(fst $) は (a, b) 型の値に適用して a 型の値を返す、という意味だ。
あなたのプログラムでは、(fst $) を runWriter に適用している。
では、runWriter の型は (a, b) なのか?
違うよね。
runWriter の型は Writer x y -> (y, x) だ。
(fst $) は (a, b) 型の値に適用することが期待されているのに、
実際のプログラムソースでは (Writer x y -> (y, x)) 型の値に適用しようとしている。
マッチしないよ。
省3
965: 2012/10/10(水)20:41 AAS
>>964
なるほど,ありがとうございます.
格好つけてポイントフリースタイルみたいな書き方をしたが,実際にはポイントフリースタイルと($)を混同していたのがそもそもの問題だったのですね...
上下前次1-新書関写板覧索設栞歴
あと 36 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.013s