- 1 名前:デフォルトの名無しさん [04/02/10 22:16]
- Haskellの公式HP
www.haskell.org/ 日本語サイト www.sampou.org/cgi-bin/haskell.cgi www.teu.ac.jp/kougi/koshida/Prog6/index.html 過去ログ、関連スレは>>2-5
- 778 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 00:46:37 ]
- >777
少し前にメーリングリストで「sumはfoldl'を使うべき」という議論があったね。 いま見直したら、議論は「可算は常にstrictと言えるか」とかいう方向にシフトしちゃってたけど。 んで、型クラスを使っている以上、+演算子が常に strict に評価可能である保証はできないので、ということで議論は終結してしまっていた。 実際、 GHC では sum とか product では普通の遅延評価版を使っているよ。 実際問題としては strict 版の sum' と product' が(Listにでも)用意されていればいいと思うんだけど。 ちなみに仕様上も、 www.sampou.org/haskell/report-revised-j/standard-prelude.html foldl を使うことになっているので、仕様が変わるまでは積極評価版にはならないと考えた方がいい気がする。
- 779 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 09:25:21 ]
- >>778
そかー……. まあ product [-10000..1] とかを一回の乗算で終わらせられる可能性があるから 戦略上絶対に悪いというわけじゃないんだろうけど癪だなあ.
- 780 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 11:46:33 ]
- >>777
>リストを作って壊しているとは限らない.というか普通はそんなことしてない. その過程は、細かく言うと(foldlの代わりにfoldl'を使って) ... = foldl' (*) 1 (take (n-1) (enumFrom 2)) = foldl' (*) 1 (take (n-1) (2:enumFrom (2+1)) = foldl' (*) 1 (2:take (n-2) (enumFrom (2+1))) = foldl' (*) 2 (take (n-2) (enumFrom (2+1))) ... のように進むから、1ステップごとにconsを作っては壊す必要があると理解してたんだけど、違う? >>778 >実際、 GHC では sum とか product では普通の遅延評価版を使っているよ。 IntとIntegerについては正格な版が使われると明言されてる。 www.haskell.org//pipermail/haskell/2005-November/016727.html といってもDoubleやWord32やRationalは遅延評価版だけど。
- 781 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 21:24:51 ]
- 『ふつうの Haskell プログラミング』2005 年度内発売予定
ttp://i.loveruby.net/d/20051129.html#p01
- 782 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 23:27:32 ]
- >>781
ネ、ネタにしかみえねぇ…… マジなのか?
- 783 名前:デフォルトの名無しさん mailto:sage [2005/11/30(水) 02:16:17 ]
- ふつうの人は、Haskellでプログラミングしない。
- 784 名前:デフォルトの名無しさん mailto:sage [2005/11/30(水) 03:23:53 ]
- >>781
年内ではなく、年度内かよ。 ホントでたら買わせていただきます。 それよりも誰か The Craft of Functional Programming を訳してください。英語で挫折してしまいました。
- 785 名前:デフォルトの名無しさん mailto:sage [2005/11/30(水) 17:10:48 ]
- 世界よ、ありがとう
- 786 名前:デフォルトの名無しさん mailto:sage [2005/12/06(火) 08:44:52 ]
- 出版も遅延評価で行なわれます。
宣言はされても評価はされません。
- 787 名前:デフォルトの名無しさん mailto:sage [2005/12/06(火) 10:42:49 ]
- 参照透明性の関係で版ごとにタイトルが違うか、IOモナドに包まれて出版されます。
後者の場合、読者もIOモナドに包まれないと読めません。
- 788 名前:デフォルトの名無しさん mailto:sage [2005/12/06(火) 11:12:00 ]
- つまり必要が生じたときにその箇所だけ読まれるわけじゃなくて前から順番に読まれることが保証されているといいたいのか
- 789 名前:デフォルトの名無しさん mailto:sage [2005/12/06(火) 11:45:40 ]
- 読んだ知識をIOモナドの外で活用したい場合はどうしたらいいですか?
- 790 名前:デフォルトの名無しさん mailto:sage [2005/12/06(火) 14:43:53 ]
- unsafePerformIO
- 791 名前:デフォルトの名無しさん mailto:sage [2005/12/06(火) 17:22:33 ]
- 年度内って、来年の四月までってこと?
- 792 名前:デフォルトの名無しさん mailto:sage [2005/12/06(火) 20:00:58 ]
- i.loveruby.net/d/20051129.html#c04
12月内ってことじゃない?
- 793 名前:デフォルトの名無しさん mailto:sage [2005/12/06(火) 20:06:08 ]
- 出版前に査読してもらうってことだろ。
- 794 名前:デフォルトの名無しさん mailto:sage [2005/12/06(火) 20:11:14 ]
- >>793
ごめん。reviewの意味を勘違いしていた。
- 795 名前:デフォルトの名無しさん mailto:sage [2005/12/17(土) 10:02:29 ]
- ごめん、以下のプログラムが読み解けないです
「addの戻り値型は引数型の関数となっている、と指定している」 ということらしいのですが、誰か解説してくれまへんか class Add a b c | a b -> c where add :: a -> b -> c
- 796 名前:デフォルトの名無しさん mailto:sage [2005/12/17(土) 10:41:58 ]
- functional dependency ってヤツだよ。
それは関数ではなくて、「aとbからcの型は一意に定まる」ことを示している。 www.cse.ogi.edu/~mpj/pubs/fundeps-esop2000.pdf
- 797 名前:デフォルトの名無しさん [2005/12/18(日) 04:23:05 ]
- "100" から 100 を取り出すような関数はどうやりますか
- 798 名前:デフォルトの名無しさん mailto:sage [2005/12/18(日) 08:25:32 ]
- readの作り方?
- 799 名前:デフォルトの名無しさん mailto:sage [2005/12/18(日) 08:52:39 ]
- >>797
read "100" :: Int
- 800 名前:デフォルトの名無しさん mailto:sage [2005/12/18(日) 09:26:10 ]
- >>798
そうです。 >>799 言葉足らずですみません。
- 801 名前:デフォルトの名無しさん mailto:sage [2005/12/18(日) 11:11:46 ]
- foldl (\x y->10 * x + (ord y - ord '0')) 0
- 802 名前:デフォルトの名無しさん mailto:sage [2005/12/18(日) 14:55:27 ]
- 浮動小数の桁数指定で最後の桁の次を四捨五入の場合は?
- 803 名前:デフォルトの名無しさん mailto:sage [2005/12/18(日) 15:29:40 ]
- 何の話?
- 804 名前:デフォルトの名無しさん mailto:sage [2005/12/19(月) 15:50:32 ]
- roundN :: (RealFrac a, Integral b) => a -> b -> a
roundN x n = (frac (round (x * b))) / b where b = 10 ^^ n frac = fromRational . toRational
- 805 名前:797 mailto:sage [2005/12/20(火) 01:34:36 ]
- >>800
誰だ君… >>798 そうです。 >>799 言葉足らずですいみません。
- 806 名前:デフォルトの名無しさん mailto:sage [2005/12/20(火) 08:55:38 ]
- Webで以下のような定義を見かけたのですが、
data List a = Nil | Cons a (List a) instance Eq (List a) where Nil == Nil = True Cons x xs == Cons y ys = xs == ys _ == _ = False Cons x xs == Cons y ys = xs == ys の部分って正しいの? このままだと (Cons 1 (Cons 2 Nil)) == (Cons 1 (Cons 3 Nil)) が True になるんだけど・・・ かといって Cons x xs == Cons y ys = x==y && xs == ys とかすると、最初のほうの x==y で 「add (Eq a) to the class or instance method `=='」 とか怒られるんだけど、じゃーどう定義したらよいのか わかりまへん
- 807 名前:デフォルトの名無しさん mailto:sage [2005/12/20(火) 09:00:55 ]
- >>796
ありがとうございます。まだよくわかってないですが 読んでみます。
- 808 名前:デフォルトの名無しさん mailto:sage [2005/12/20(火) 10:37:50 ]
- >>806
リストという構造自体の等価性の問題ですから 中身は関係ない(というか見ちゃいけない)のです add (Eq a) to the class or instance method `==' とあるように, 中身の等価性まで考えようとしたら,List に格納できるデータ型 が Eq クラスのインスタンスに制限されてしまうのです.
- 809 名前:デフォルトの名無しさん mailto:sage [2005/12/20(火) 10:47:45 ]
- >>797じゃないですがReadのインスタンスの作り方わからない…
readsPrecとreadListの作り方のチュートリアルか何かないでしょうか(できればShowの方も) Haskell98Report読んでもサッパリです
- 810 名前:デフォルトの名無しさん mailto:sage [2005/12/20(火) 13:02:57 ]
- instance Eq a => Eq (List a) where
Nil == Nil = True Cons x xs == Cons y ys = x == y && xs == ys _ == _ = False
- 811 名前:デフォルトの名無しさん mailto:sage [2005/12/20(火) 18:59:40 ]
- >>808
なるほど。納得です。 >>810 こうすると出来ますね。 Eq クラスのインスタンスに制限されるってこういうことだったのですね 有難うございました。
- 812 名前:デフォルトの名無しさん mailto:sage [2005/12/21(水) 23:26:59 ]
- >>809
チュートリアルじゃないけど、GHC.Readにいくつかinstanceの例がある。 cvs.haskell.org/cgi-bin/cvsweb.cgi/fptools/libraries/base/GHC/Read.lhs?rev=1.29;content-type=text%2Fplain 理解したら、是非チュートリアルを書いてくれ。
- 813 名前: ◆SaiTAMaVxg [2006/01/09(月) 08:32:36 ]
- ミ ( ノ
/ ̄\ ♪ 〜(゚ ∀ 。 )⌒ ♪ \_/ 彡 ノ ι ヽ ♪ .ハ ,ヘ (( )ノ .)) (( ∧∧// \(゚∀゚ ) ) ノ ヾ ♪ ミ シ´ / ,γ ミ r´ ( ∧∧// ヽ、 ヽ 彡 ♪ ( ゚∀゚)' ) ノ 彡 .,/ ヽ ミ ノ ,、( ノ ノヽ l r´/ ) ) ミ (´/ ノ ノ ( ( ( ( γ´ (´ ヽ) ヽ\ ノ ハ ヽ ♪ ノ ) . / ,,/ (,,ノ 彡 ♪ (__ノ (_,,ノ
- 814 名前:デフォルトの名無しさん mailto:sage [2006/01/22(日) 22:44:58 ]
- shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all
パフォーマンスが凄いことになってる。
- 815 名前:デフォルトの名無しさん mailto:sage [2006/01/23(月) 00:03:09 ]
- shootoutって、普通のプログラマが見ても
「Cはやっぱり速いなあ」とか「インタプリタはやっぱり遅いなあ」とか 「Javaはやっぱりメモリ喰いだなあ」とか思うだけで、 「関数型言語頑張ってるな。ちょっと使ってみるか」とは全く思ってくれない罠。
- 816 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 21:41:39 ]
- 複数の関数の挙動に影響を与える「オプション」を外部(コマンドラインとか)から指定したいとき
C++みたいな言語の「thisの省略」がすごく羨ましいんだけど、 似たようなことをHaskellっぽく書けないものだろうか。 implicit parameterでそれなりに書けそうだけど、 使われてるのを見たことがない。 みんな明示的に引数を持ち回るのが苦痛じゃないのか?
- 817 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 23:15:17 ]
- >>816
そんな君にReaderT。 StateTでもいいぞ。
- 818 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 23:46:36 ]
- >>817
おー、ありがとう。 この目的のためにReaderモナドで計算順序を導入するのには抵抗があったけど、 既にもなでぃっくなコードにReaderTを混ぜ込むなら面倒が少ないな。
- 819 名前:デフォルトの名無しさん [2006/02/05(日) 07:29:06 ]
- この言語は素晴らしいですか?
- 820 名前:デフォルトの名無しさん mailto:sage [2006/02/05(日) 07:47:59 ]
- 最高ですかー!
- 821 名前:デフォルトの名無しさん [2006/02/05(日) 08:28:42 ]
- この言語の、C++に較べて、劣っている点を教えて下さい。
- 822 名前:デフォルトの名無しさん mailto:sage [2006/02/05(日) 10:42:57 ]
- ・C++ではテンプレートを使ってコードの抽象性と実行時効率を両立できるけど、
Haskellでは困難。 ・C++では名前空間・クラス・関数をかなり自由に相互ネストさせられるし、 ネストに従って細かくスコープを分けてくれるのに対して、 Haskellの名前空間はフラットで、レコードのフィールド名のスコープがモジュールレベルだったり、 関数に局所的な型の定義ができなかったりして不便。 ・互いに関連のないものに同じ名前を与えるC++風の多重定義は難しい。 やってできないことはないけど、想定された言語の使いかたではないだろう。
- 823 名前:デフォルトの名無しさん [2006/02/06(月) 00:21:58 ]
- 俺は今酔ってるし、ニートだし、最強だ。
モナディウスを参考にシューティングゲーム作るぞ。うぉー!
- 824 名前:デフォルトの名無しさん mailto:sage [2006/02/06(月) 00:33:36 ]
- >>823
マジ応援してる。
- 825 名前:デフォルトの名無しさん [2006/02/06(月) 03:51:37 ]
- 出来上がったコードの実行速度はめっちゃ遅いですか?
- 826 名前:デフォルトの名無しさん mailto:sage [2006/02/06(月) 06:11:44 ]
- >>825
>>814
- 827 名前:デフォルトの名無しさん mailto:sage [2006/02/06(月) 07:33:29 ]
- Haskell Hackerが超がんばってキモいコード書けばgcc相当にはなるらしい。
俺のような凡人が普通に書いたらめっちゃ遅い。
- 828 名前:デフォルトの名無しさん [2006/02/06(月) 09:10:24 ]
- ハスケルハッカーがキモいコードを書けば、
バグは少ないわ高速だわの最強のコードが生成されるのですね? それとも、キモいコードってのはバグを許す代わりに高速にするとかいう類の話?
- 829 名前:デフォルトの名無しさん mailto:sage [2006/02/06(月) 22:46:13 ]
- shootout.alioth.debian.org/gp4/benchmark.php?test=nbody&lang=java
shootout.alioth.debian.org/gp4/benchmark.php?test=nbody&lang=ghc&id=4 ・コンパイルが大変で、 ・コードが読みにくい分バグが多く、 ・遅い
- 830 名前:デフォルトの名無しさん mailto:sage [2006/02/06(月) 23:05:14 ]
- 確かに読みにくいね。
>・コンパイルが大変で、 どういう意味?
- 831 名前:デフォルトの名無しさん [2006/02/07(火) 05:53:35 ]
- ハスケル勉強したいが
参考書がきっと1万とか法外な値段でしょ? 手が出ません><
- 832 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 06:09:11 ]
- 数学やってる人がHaskellを直ぐに分かるのは、
集合論と一階述語論理について勉強済みだからなんだよね?
- 833 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 10:27:09 ]
- もうすぐ青木さんの本とかが出るでしょ。
使うだけなら数学の話は特に必要ないよ。たぶん。
- 834 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 11:00:55 ]
- 数学の知識はいらないと思うけど、論理学の基礎なしじゃむりだぽ。
- 835 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 16:18:33 ]
- 数学に基づいて作られた言語ではあるが,その理念を理解して利用するのと,ただプログラミング言語として利用するのとでは意味が違う。
- 836 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 16:28:17 ]
- 「アルゴリズムのプロトタイピングなら C や Java よりも簡単で,早くできます」
とは大学の教官の弁。単位きたかなあ。
- 837 名前:デフォルトの名無しさん [2006/02/07(火) 16:54:31 ]
- 早く作れても速く動かないのではなぁ…
- 838 名前:823 [2006/02/07(火) 17:13:22 ]
- >>837
みんなで速くするんだと思います>< CやFORTRANが速いのは多分歴史が長いからだと思ってる --以下チラシの裏 今日やったこと:eclipseの日本語化とFPの導入 一言:eclipseをeclispだと思ってて「HaskellなのになんでLisp?」とか考えてた。英語弱いな、俺 今からやること:エヴァの映画借りてきて見る
- 839 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 21:16:35 ]
- >>837
だからプロトタイピングなんだろ。 物好きがいろいろやってはいるけど、どう考えても研究用途の言語だよな。 だから意味がないというわけではないが。
- 840 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 21:46:46 ]
- >>839
ちょっとお前は論点ずれてるよな。
- 841 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 22:30:09 ]
- >>830
liftMとか素人なら完全に御手上げ。 あと、何この演算子?ってのを使ってる (.|. (shiftL i 3)) -- google氏も無視 逆にhaskellが神言語になってる例 shootout.alioth.debian.org/gp4/benchmark.php?test=pidigits&lang=dlang&id=0 shootout.alioth.debian.org/gp4/benchmark.php?test=pidigits&lang=ghc&id=3 d 言語90行 haskell 11行 実行速度ほぼ同じ 理由 Integer型が使える Monadを使う必要もMonad持ち上げをする必要がない。(配列を使う必要がない)
- 842 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 18:30:21 ]
- >liftMとか素人なら完全に御手上げ。
たぶん、すぐ慣れると思う。 >(.|. (shiftL i 3)) -- google氏も無視 そんなあなたにHoogle www.haskell.org/hoogle/?q=.%7C.
- 843 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 21:20:50 ]
- >>842
すげー。 型から検索できるのがHaskellらしいな。
- 844 名前:デフォルトの名無しさん mailto:sage [2006/02/09(木) 09:48:51 ]
- みなさんは、式がどういう順番で評価されていくか
手にとるようにわかるのですか? 私はどう書いたら速いコードになるのかいまいちわかりません。
- 845 名前:デフォルトの名無しさん mailto:sage [2006/02/09(木) 13:07:28 ]
- 評価順序など考えない。何のための遅延評価だと思っとる。
速いコードを書くのが目的なら関数型言語など、いや、 高級言語など使うのはお止めなさい。
- 846 名前:デフォルトの名無しさん mailto:sage [2006/02/09(木) 13:19:59 ]
- 普段は評価順序なんか考えないでコーディングして、
効率が足らないことが分かったとき、そこをアセンブリで書き直す代わりに 既にあるHaskellのコードをいじって効率を確保する、というのは、 それなりに合理的だと思うんだが。
- 847 名前:844 mailto:sage [2006/02/09(木) 13:44:18 ]
- べつに速さで C と張り合おうとか思ってるわけではないのですが、例えばhead $ xs ++ [x]が O(1) かどうかというのは、評価順がわからないとわからないですよね?こういう簡単な例なら私にもわかるのですが、ちょっと複雑になると頭を抱えてしまうわけです。
- 848 名前:823 [2006/02/09(木) 14:15:14 ]
- >>847
多分、どんな順序で書いてもコンパイラが同じように並べかえてくれるんじゃないかなぁ? コンパイラが考えうる中で最も効率的なコードが出るようにね
- 849 名前:デフォルトの名無しさん mailto:sage [2006/02/09(木) 14:16:51 ]
- >>847
非正格になれてないだけ。
- 850 名前:デフォルトの名無しさん mailto:sage [2006/02/09(木) 19:00:42 ]
- 個人的経験では、Haskellerの半分はスピードレーサー(最適化おたく)だと思う。
- 851 名前:デフォルトの名無しさん mailto:sage [2006/02/09(木) 22:26:31 ]
- マシン非依存の部分ならば、
Cよりhaskellの方が速いコードが書けるはず。 なぜならば、見栄え良く、簡潔に書け(簡潔じゃないとコンパイルできない) 無駄なく書けるから。 cだと、綺麗なコードを書くために無駄なコードを書きまくると思うし、 汚い普通のコードを書いても、Haskellと同程度しか速くならない。 cの有利な点は、 gcがない, 配列操作, アセンブラ的コードが書ける, 速いライブラリがある。 と言ってみる。
- 852 名前:デフォルトの名無しさん mailto:sage [2006/02/09(木) 22:37:03 ]
- 非正格だから遅いみたいな話は聞いた事がある。詳細は知らないけど。
>>851 >なぜならば、見栄え良く、簡潔に書け(簡潔じゃないとコンパイルできない) これは速いコードとは関係ないんじゃないの? 早くコードを書く事は出来るのかもしれないが。
- 853 名前:デフォルトの名無しさん mailto:sage [2006/02/09(木) 22:37:18 ]
- 「マシン非依存の部分」なんてあるのか?
- 854 名前:デフォルトの名無しさん mailto:sage [2006/02/09(木) 22:39:54 ]
- Haskellのソースはスリムだがバイナリがピザデブ杉。
- 855 名前:デフォルトの名無しさん [2006/02/09(木) 23:28:22 ]
- >>853
add
- 856 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 03:01:51 ]
- Haskell学んでC++でメタプログラミング
これ最新最強。newなんていりませんから!
- 857 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 10:53:42 ]
- なんでCはいつも最速なの?
- 858 名前:fortran mailto:sage [2006/02/10(金) 10:55:08 ]
- ・・・
- 859 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 12:50:24 ]
- 最速はアセンブリ言語
- 860 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 15:32:11 ]
- 規模が大きければ
今となってはコンパイラが吐くアセンブラの方が速いことが多いけどね
- 861 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 15:53:17 ]
- あらまあ何言ってるのかしらこの子ったら
- 862 名前:デフォルトの名無しさん [2006/02/10(金) 16:26:10 ]
- コンパイラに負けるなんて、無能を証明してるようなもんだろ。
- 863 名前:デフォルトの名無しさん [2006/02/10(金) 16:27:27 ]
- >>857
危険だからさ。 お行儀の良いハスケルにはわからんだろうがね。
- 864 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 16:40:00 ]
- >>856
バカですか >>857 バカですか >>859 バカですか >>862 バカですか Haskellに関しての議論としては論点がずれているぞ。 Haskellを創った人たちは、お前らが気にしていることはすべて解っているし、そんなことを解決するための言語にしようとは考えていないんだよ。 言語仕様に関しては。言語仕様という表現も好きじゃないけど。
- 865 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 16:49:34 ]
- へぇ、、ハスケルって読むんだぁ。。
アライグマみたいだね。
- 866 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 16:54:41 ]
- >>864
必死だな。 マジレスすると、「Haskellを創った人たち」の意図などどうでも良い。 いったん言語ができあがってしまえば、それをどう使おうが勝手だ。
- 867 名前:デフォルトの名無しさん [2006/02/10(金) 16:59:56 ]
- ネタっぽいんだが
- 868 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 18:57:08 ]
- Haskellを作った人達って誰になるのかな。
Hudak? Peyton Jones? Wadler?
- 869 名前:844 mailto:sage [2006/02/10(金) 21:21:30 ]
- あれれ、なんだか私の質問で荒れちゃったみたいで申し訳ない。
>>849 これでも、もう一年以上使ってるんですよ。ヘボプログラマーなもんで...。
- 870 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 22:11:16 ]
- 書いたとおりに動くCとかと違って,書いたコードよりオーダー単位で計算量が
小さくなる可能性がある Haskell には期待してるんだがなあ.
- 871 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 22:23:04 ]
- O'Camlはむちゃくちゃ早いらしいけど、Haskellとは何が違うんだろう。
- 872 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 22:42:30 ]
- >>871
wiki.ocaml.jp/index.php?%B4%D8%BF%F4%B7%BF%B8%C0%B8%EC%A4%CE%C8%E6%B3%D3 デフォルトで遅延評価なのか、指定したときだけ遅延評価なのか。 破壊的代入を許さないのか、許すのか。 速度に影響しそうな所というとこの辺の違いかな?
- 873 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 22:46:32 ]
- >>870
そんな激しい最適化をするHaskellコンパイラはないと思うが。
- 874 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 23:59:12 ]
- Hudakじゃないだろ。やっぱりSPJが筆頭なんじゃない?
- 875 名前:デフォルトの名無しさん mailto:sage [2006/02/11(土) 00:19:45 ]
- なんかShootoutのページで、あれ、Haskell速いじゃんと思ったら、
極端に遅い欠点がないのと、重みが高い数個のプログラムで稼いでるだけ みたいだな。勝ってる数だけで見たらJavaにも勝てない。
- 876 名前:デフォルトの名無しさん mailto:sage [2006/02/11(土) 05:57:50 ]
- ふつうの本は五月に延期だそうな。
- 877 名前:デフォルトの名無しさん mailto:sage [2006/02/11(土) 09:05:41 ]
- take 5 $ reverse $ reverse [1..]
で死にやがった。遅延評価も万能じゃないんだな。
- 878 名前:デフォルトの名無しさん mailto:sage [2006/02/11(土) 09:28:58 ]
- Haskellでは
reverse $ reverse ≡ id だからなあ。
|

|