[過去ログ]
関数型プログラミング言語Haskell Part4 (1001レス)
関数型プログラミング言語Haskell Part4 http://echo.5ch.net/test/read.cgi/tech/1140717775/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
896: デフォルトの名無しさん [sage] 2006/05/22(月) 12:04:04 Haskellやってる人の平均的プロフィールってどんな感じ? http://echo.5ch.net/test/read.cgi/tech/1140717775/896
897: デフォルトの名無しさん [sage] 2006/05/22(月) 12:54:30 大学院生が多いと思ってた(というか東大か京大ばかりだと思ってた.私は違うけど でも>>871みたいに他言語使いの例があるなら分からないな http://echo.5ch.net/test/read.cgi/tech/1140717775/897
898: デフォルトの名無しさん [sage] 2006/05/22(月) 13:10:49 東大京大て…一体どんな根拠があってそんな考えに至ったんだよw 無駄にトップクラスの大学挙げてくる辺りが学歴厨くさいな。 http://echo.5ch.net/test/read.cgi/tech/1140717775/898
899: デフォルトの名無しさん [sage] 2006/05/22(月) 13:17:10 自分は、Haskellやろうと思ったけど、HaskellをせずにLispをやり始めた。 ていうかチャイティンの本が面白いんでそうなった。 Haskellの勉強会に出てるのは、良く分からんけど、 学生とか変わった会社員とかと言う感じっぽいな。 http://echo.5ch.net/test/read.cgi/tech/1140717775/899
900: デフォルトの名無しさん [sage] 2006/05/22(月) 13:57:41 >>898 >東大京大て…一体どんな根拠があって う〜ん,根拠かあ.webページとかICFPとか見てて浮かんだ憶測だけど,全くの当て推量ではないです. あと学歴厨って言葉は久しぶりに聞いた.よくそんな言葉を恥ずかしげもなく吐けると思うよ. そんなに気分が悪いの?怒ってるの? http://echo.5ch.net/test/read.cgi/tech/1140717775/900
901: デフォルトの名無しさん [sage] 2006/05/22(月) 14:20:07 学歴コンプレックスって言ってやった方が良かったですか?(笑) http://echo.5ch.net/test/read.cgi/tech/1140717775/901
902: デフォルトの名無しさん [sage] 2006/05/22(月) 14:41:59 はぁー,自分が低脳・低学歴だからって他人を僻むのはみっともないよ. もっと大人になった方がいいんじゃないかな. http://echo.5ch.net/test/read.cgi/tech/1140717775/902
903: デフォルトの名無しさん [sage] 2006/05/22(月) 15:11:30 そこらへんでやめておけ http://echo.5ch.net/test/read.cgi/tech/1140717775/903
904: デフォルトの名無しさん [sage] 2006/05/22(月) 15:17:10 すまんな。俺がどうでも良い質問をしたばっかりに。 http://echo.5ch.net/test/read.cgi/tech/1140717775/904
905: デフォルトの名無しさん [sage] 2006/05/22(月) 15:23:39 いや,むしろおれが悪かった. みんな,ごめん. http://echo.5ch.net/test/read.cgi/tech/1140717775/905
906: デフォルトの名無しさん [sage] 2006/05/22(月) 16:25:30 >>904 お前いい奴だな。 http://echo.5ch.net/test/read.cgi/tech/1140717775/906
907: デフォルトの名無しさん [sage] 2006/05/22(月) 17:34:23 なんて、うそよねん http://echo.5ch.net/test/read.cgi/tech/1140717775/907
908: デフォルトの名無しさん [sage] 2006/05/22(月) 18:12:55 >>895 どこが面白いのかわからない… http://echo.5ch.net/test/read.cgi/tech/1140717775/908
909: デフォルトの名無しさん [sage] 2006/05/22(月) 18:48:59 涼宮ハルヒって何か知らんが、最近興味が出てきたよ。 何とか見ないように我慢してるけど。 http://echo.5ch.net/test/read.cgi/tech/1140717775/909
910: デフォルトの名無しさん [sage] 2006/05/23(火) 03:05:16 いや、ハルヒたらはどうでもいいんだけどね http://echo.5ch.net/test/read.cgi/tech/1140717775/910
911: デフォルトの名無しさん [sage] 2006/05/23(火) 04:19:48 もう片方のハルヒはいいぞ。 http://echo.5ch.net/test/read.cgi/tech/1140717775/911
912: デフォルトの名無しさん [sage] 2006/05/23(火) 07:42:15 Haskell使いは高学歴アニヲタの傾向あり、と http://echo.5ch.net/test/read.cgi/tech/1140717775/912
913: デフォルトの名無しさん [sage] 2006/05/23(火) 08:14:50 Haskellの話題で盛り上がれよ。 http://echo.5ch.net/test/read.cgi/tech/1140717775/913
914: デフォルトの名無しさん [sage] 2006/05/23(火) 16:12:47 最近、代入を多用した他の言語で書かれたプログラムと同じ動作をするものをHaskellで書きました。それでStateモナドの使い方が分からないので無限ストリームを使ってみたのですが、無限ストリームは分かりづらいからStateモナド使えと言われました。 無限ストリームを使うよりもStateモナドを使った方がHaskellらしいのでしょうか? 教えて下さい。 http://echo.5ch.net/test/read.cgi/tech/1140717775/914
915: デフォルトの名無しさん [sage] 2006/05/23(火) 16:35:05 ストリームとStateモナドのどっちを使うか迷うという状況を想像できんのだが。 例えばどんなコード? http://echo.5ch.net/test/read.cgi/tech/1140717775/915
916: デフォルトの名無しさん [sage] 2006/05/23(火) 16:39:04 Haskellで他の言語のVM作っていて、命令が実行される毎にそのVMのレジスタの値を変更するようなコードです。 全てのVMの状態がならんだストリームを作って、ある状態のVMを返すってなコードを作ってました。 http://echo.5ch.net/test/read.cgi/tech/1140717775/916
917: デフォルトの名無しさん [sage] 2006/05/23(火) 17:10:38 そのVMがレジスタの値以外に内部状態を持たないなら、 Stateモナドやストリームを使っても特に嬉しくないんじゃないか? そういう場合は、 nextState :: Code -> RegisterState -> RegisterState みたいな状態更新関数を作るのが自然なような気がする。 役に立たない回答ですまん。 http://echo.5ch.net/test/read.cgi/tech/1140717775/917
918: デフォルトの名無しさん [sage] 2006/05/23(火) 17:13:01 > Stateモナド使えと言われました。 そう言ってくれる人がいることが羨ましい。 http://echo.5ch.net/test/read.cgi/tech/1140717775/918
919: デフォルトの名無しさん [sage] 2006/05/23(火) 19:11:20 >>914 その辺は好みじゃないかなぁ。 具体的なものを見てみないとわからないけど。 あえて言うなら、将来他のモナドと組み合せて使うならモナドで書いておいた方が良いかもしれない。 http://echo.5ch.net/test/read.cgi/tech/1140717775/919
920: デフォルトの名無しさん [sage] 2006/05/23(火) 19:12:29 > そのVMがレジスタの値以外に内部状態を持たないなら〜特に嬉しくない なんで?「レジスタの値以外に内部状態を持たないなら」という前提がよくわからない。 どちらにせよStateモナドはかなり嬉しいと思う。 nextState :: Code -> RegisterState -> RegisterState ... let new = nextState code old in ... と書くより, nextState :: Code -> State RegisterState () として, ... do nextState code とやったほうが明示的に状態を持って回らなくて楽じゃん。 All About MonadsのState Monadの「動機」が分かりやすい: ttp://www.sampou.org/haskell/a-a-monads/html/statemonad.html#motivation むしろ自分としては > 全てのVMの状態がならんだストリームを作って、ある状態のVMを返すってなコード こっちの書き方が気になる。コード貼って欲しいです。 http://echo.5ch.net/test/read.cgi/tech/1140717775/920
921: デフォルトの名無しさん [sage] 2006/05/23(火) 19:18:58 > 将来他のモナドと組み合せて使うならモナドで書いておいた方が良い これ読んで思ったのだけど,例えばStateなら, nextState :: (MonadState RegisterState m) => Code -> m () みたいに,より一般的に定義するって手があるよね これなら nextState :: Code -> State RegisterState () nextState :: (Monad m) => Code -> StateT RegisterState m () この両方の型が付けられる (←表現あってる?)。 ただ,読みにくくなる(と僕は思う)し,ムキになって一般化するよりも, 使いどころは考えないとな,というのがプログラマの印象。 http://echo.5ch.net/test/read.cgi/tech/1140717775/921
922: デフォルトの名無しさん [sage] 2006/05/23(火) 19:21:49 あ,MonadStateは http://www.haskell.org/ghc/docs/latest/html/libraries/mtl/Control-Monad-State.html こっちみてください。でも既にfundepsとか使ってあって,ちょっとわかりにくいか… http://echo.5ch.net/test/read.cgi/tech/1140717775/922
923: デフォルトの名無しさん [sage] 2006/05/23(火) 20:03:15 >>920 >「レジスタの値以外に内部状態を持たないなら」という前提がよくわからない。 ごめん。余り意味のない前提だったから忘れてくれ。 >どちらにせよStateモナドはかなり嬉しいと思う。 >(...) >とやったほうが明示的に状態を持って回らなくて楽じゃん。 それが嬉しいのはRegisterStateを変化させるコードがnextStateの他にあって、そこから nextStateを呼び出したい場合だけじゃないか? nextStateはレジスタの状態を1クロック進めるVMの本体であって、 他にレジスタをいじるコードはほとんどないと仮定したんだがどうだろうか。 仮にnextStateをStateモナドから呼び出したいことがあったとしても、 monadicNextState :: Code -> State RegisterState () monadicNextState code = modify (nextState code) みたいに定義しておけばいいので、nextState自体をStateモナドで書く理由にはならないと思う。 …しかし、nextStateの実装にStateモナドを使って嬉しいことは普通にあるような気がしてきた。 複数のレジスタ操作アクションを組み合わせてnextStateを書く場合とか。 http://echo.5ch.net/test/read.cgi/tech/1140717775/923
924: デフォルトの名無しさん [sage] 2006/05/23(火) 20:59:10 要するに,nextStateにどんな型を持たせるか,というのは, nextStateを使う側がどんな風に呼び出しているか,って事でそ? Code -> State RegisterState () も Code -> RegisterState -> RegisterStateも同型な訳で, どっちでも使いやすいほうでいい.>>923でも良いし,それはここでは別問題な気がする. ここでは「VMを作るけど実装のうえで状態の扱いをどうするか?」という質問なので 「それならStateモナドがいいんじゃね?」という答えはストレートで合ってると思う. 処理の全体を表す関数がどんな型を持っているかは,わりとどうでもいいと思う.なんでもいいけど http://echo.5ch.net/test/read.cgi/tech/1140717775/924
925: デフォルトの名無しさん [sage] 2006/05/23(火) 21:05:51 s->(a,s)もState s aも同型だろうよ http://echo.5ch.net/test/read.cgi/tech/1140717775/925
926: デフォルトの名無しさん [sage] 2006/05/23(火) 21:27:39 >処理の全体を表す関数がどんな型を持っているかは,わりとどうでもいいと思う. これには同意するけど、nextStateはいま問題になっている「処理の全体を表す関数」じゃない。 >>914は「処理の全体を表す関数」をストリームで書くかStateモナドで書くかという問題を提起していて、 それに対して>>917で、nextStateを用意して、それを使って「処理の全体を表す関数」を書いたらいいんじゃないか、と提案した。 この方針が採用されたとして、nextStateの実装にStateモナドを使うかどうかは、また別の話だろ。 http://echo.5ch.net/test/read.cgi/tech/1140717775/926
927: デフォルトの名無しさん [sage] 2006/05/23(火) 21:58:09 もういいよ http://echo.5ch.net/test/read.cgi/tech/1140717775/927
928: デフォルトの名無しさん [sage] 2006/05/23(火) 23:02:50 >nextStateの実装にStateモナドを使うかどうかは、また別の話だろ。 その「別の話」が聞きたかったんじゃないのか. だからStateモナドを使えば状態の管理が楽なんだよ,と答えたんじゃないの というか処理の全体って何だよ nextStateだか何だか知らないけど,おまいらどういう文脈を仮定しているのかと http://echo.5ch.net/test/read.cgi/tech/1140717775/928
929: デフォルトの名無しさん [sage] 2006/05/23(火) 23:06:13 自分(>>914)から話題をふっておきながら,返事が遅れてしまい申し訳ありません。 私が疑問に思ったのは以下のようなことです. スタックやレジスタを持つVMがいくつかの関数から参照されているとき, そのVMの中のレジスタだけを変化させて他の関数にその変化を反映させた い時,Haskellではそれをどのように解決するのかが疑問に思いました。 これはStateモナドを使えば可能ということでしょうか? Haskellで代入のような状態変化を表現するのに私は無限ストリームを使う方法しか知らなく,他にもっと良い方法があるのか疑問に思ったので質問しました. 無限ストリームを使って上記のようなことをできるのであればその方法も教えて頂きたいです. http://echo.5ch.net/test/read.cgi/tech/1140717775/929
930: デフォルトの名無しさん [sage] 2006/05/23(火) 23:07:30 それと私が書いたコードは以下のような感じです(若干略していますが)。 data VM = VM Stack RegisterTable runVM :: VM -> Codes -> VM runVM vm codes = selectUnChangedVM $ generateAllVM vm codes where selectUnChangedVM :: [VM] -> VM selectUnChangedVM (vm1:vm2:vms) | vm1 == vm2 = vm1 | otherwise = selectUnChangedVM (vm2:vms) generateAllVM :: VM -> Codes -> [VM] generateAllVM vm codes = iterate (execOne codes) vm execOne :: Codes -> VM -> VM execOne codes vm = newvm where code = selectCode vm codes newvm = execCode code vm やっていることは以下の通りです. (1) 1クロックごとのVMの状態を持つ無限ストリームを生成 (2) その中で次のクロックに移っても状態が変わっていないVMを見付けてそのVMを返す http://echo.5ch.net/test/read.cgi/tech/1140717775/930
931: デフォルトの名無しさん [sage] 2006/05/23(火) 23:09:22 そんなことより>>883の解説きぼん http://echo.5ch.net/test/read.cgi/tech/1140717775/931
932: デフォルトの名無しさん [sage] 2006/05/23(火) 23:13:35 >>930 止まる,というのを,「VMの状態が変化しないこと」としているのは,どうなんだろう。 普通はhalt命令とか入れるんでわ http://echo.5ch.net/test/read.cgi/tech/1140717775/932
933: デフォルトの名無しさん [sage] 2006/05/23(火) 23:15:30 というか後々副作用を導入する為にStateT IOで書くってのはどうよ http://echo.5ch.net/test/read.cgi/tech/1140717775/933
934: デフォルトの名無しさん [sage] 2006/05/23(火) 23:35:11 data RegisterTable = RegisterTable {r1::Int, r2::Int, pc::Int, sp::Int} updateR1 :: Int -> State RegisterTable () updateR1 v = do old <- get put (old {r1=v}) jump addr = do old <- get put (old {pc=addr}) めんどくさくなってきた…かなり反復気味のコードねコレ。良策求む。 ところでこのまま行って State VM a の a は () 以外に何かありえるのかな? 全部状態更新しかしない (State VM Bool などを使わない) ならState使う意味がない気がする http://echo.5ch.net/test/read.cgi/tech/1140717775/934
935: デフォルトの名無しさん [sage] 2006/05/24(水) 00:20:52 >>930 俺はそのままで問題ないと思う。execCodeの処理が複雑なら そこだけ>>934みたいにStateモナドを使って実装してもいいかも知れないが。 それはごく普通のストリームの使いかただから、 これが分かり辛いと言う奴はHaskellに慣れてないだけなんじゃないだろうか。 http://echo.5ch.net/test/read.cgi/tech/1140717775/935
936: デフォルトの名無しさん [sage] 2006/05/24(水) 00:36:13 まあでもVMを状態の無限ストリームで実装すると聞いたらびっくりするんじゃないだろうか。 実際>>930のコード読むまで私は質問者がどう実装したのか分からなかった。 あと,モナドなら>>933が言っているように(?)、 将来VMから環境に副作用を及ぼす(ファイル入出力やコンソール出力など)ように拡張したい場合、 StateTとIOと合成すれば一発、とかちょっとエレガントじゃなかろうか。やってないので分からんけど http://echo.5ch.net/test/read.cgi/tech/1140717775/936
937: デフォルトの名無しさん [sage] 2006/05/24(水) 00:53:32 >>932 アセンブラの演習とかで,終了を halt: jmp halt みたいに書くのはよくある。 Stateモナドは状態の履歴を持たないから、この場合に無限ストリームを使うのは結構賢いかも http://echo.5ch.net/test/read.cgi/tech/1140717775/937
938: デフォルトの名無しさん [sage] 2006/05/24(水) 01:29:59 ネタだけど、あとあと入出力を扱うためにもなでぃっくなストリームをつかう、とか newtype MonadStream m a = MS (m (a, MonadStream m a)) type Stream = MonadSteram Identity type IOStream = MonadStream IO http://echo.5ch.net/test/read.cgi/tech/1140717775/938
939: デフォルトの名無しさん [sage] 2006/05/24(水) 07:33:04 MLとかMirandaの話になってしまうが、 モナドがない頃は、無限ストリーム専門だったよ… http://echo.5ch.net/test/read.cgi/tech/1140717775/939
940: デフォルトの名無しさん [sage] 2006/05/25(木) 00:37:27 λ,,,,,,λ ガオー! ∩`iWi´∩ λ,,,,λ グオー! ヽ |m| .ノ∩`iWi´∩ |  ̄| ヽ |m| .ノ | | | | U⌒U U⌒U http://echo.5ch.net/test/read.cgi/tech/1140717775/940
941: デフォルトの名無しさん [] 2006/05/28(日) 21:47:49 Haskell面白そうなんだけど、サーバプログラム書けるのかな? 50本から100本くらいのソケットを効率良く処理したいから、 UNIXのselectシステムコールみたいな操作使って、 多重化したI/Oを準備OKなやつを片っ端からてきぱきさばきたいんだけど、 そういう処理って書けて効率良く実行できるのかな? あと、XMLも扱いたいけどライブラリはどれくらいあるの? さらに、通信部分とは別のところで、ユーザといろいろインタラクション するためのスレッドをたくさん動かして、スレッド間で複雑に相互作用が あるんだけど、そういった処理も書きやすいのかな? http://echo.5ch.net/test/read.cgi/tech/1140717775/941
942: デフォルトの名無しさん [] 2006/05/28(日) 21:52:47 そうそう、Haskel用のGUIは何がお勧めかな?Linuxで動けばいいよ。 Fedora Core 5のextrasリポジトリに ghc-gtk2hs-0.9.10-1.fc5.i386.rpmってのがあって、 GTK+のHaskellバインディングみたいだけど、これって使いものになる? 関数型のプログラミングスタイルとずれるところはあるの? http://echo.5ch.net/test/read.cgi/tech/1140717775/942
943: デフォルトの名無しさん [sage] 2006/05/28(日) 22:47:42 ん? とりあえず出来なさそうなことを色々挙げてみる煽りかな? http://echo.5ch.net/test/read.cgi/tech/1140717775/943
944: デフォルトの名無しさん [] 2006/05/28(日) 23:00:28 んーん。このスレ見てたらなんだか面白そうな言語だから勉強したく なったけど、単なる計算じゃなくて、もっと実践的な仕事まで視野に入れると どれくらい使いものになる言語なんだろうって知りたい。 実践っていっても、今仕事で書いてるようなプログラムをHaskellでも 書けるかって観点で最低限を書き出したら>>941-942みたいになったよ。 http://echo.5ch.net/test/read.cgi/tech/1140717775/944
945: デフォルトの名無しさん [sage] 2006/05/28(日) 23:13:20 XMLで通信するMMOゲームでも作ってんのか>>944氏は。 http://echo.5ch.net/test/read.cgi/tech/1140717775/945
946: デフォルトの名無しさん [sage] 2006/05/28(日) 23:35:22 デイトレ用のプログラムと見た。 http://echo.5ch.net/test/read.cgi/tech/1140717775/946
947: デフォルトの名無しさん [sage] 2006/05/28(日) 23:42:13 誰も答えないので分かる範囲で。あまり信用しないでくれ。 >Haskell面白そうなんだけど、サーバプログラム書けるのかな? 書けると思われ。 >そういう処理って書けて効率良く実行できるのかな? ちょっと探してみたけどselectはなさそうだった。 必要ならシステムコールを呼べばいい。効率はしらね。 どっちかというとfdの数だけ(ユーザレベルの)スレッドを用意するのが推奨されてるような気もする。 >あと、XMLも扱いたいけどライブラリはどれくらいあるの? 有名なのは2つかな。 >あるんだけど、そういった処理も書きやすいのかな? 書きやすいと思う。 >そうそう、Haskel用のGUIは何がお勧めかな?Linuxで動けばいいよ。 Gtk2HsとWxHaskellの二択だろう。ちゃんと使った訳じゃないので評価はパス。 >関数型のプログラミングスタイルとずれるところはあるの? 微妙。少なくとも宣言的なGUIプログラミングができる訳ではない。 http://echo.5ch.net/test/read.cgi/tech/1140717775/947
948: デフォルトの名無しさん [] 2006/05/28(日) 23:49:06 >>945>>946 どっちもちがうよ。詳しくは言えない。 >>947 おぉおぉ!ありがとうっす。そこそこ実践的にも使えるんだね。 ユーザレベルのスレッドってコルーチンみたいなやつかな? wxHaskellなんてもんもあるんだ。そりゃいい! wxWidgetsはwxPython通して使ったことあるけど、 LinuxでもWindowsでも多少の変更で対応できるのがいいよね。 http://echo.5ch.net/test/read.cgi/tech/1140717775/948
949: デフォルトの名無しさん [sage] 2006/05/29(月) 00:57:36 なんかどっかでConcurrent Haskellの並行機構を使えばselectとか要らんよ, というのを英語で読んだ気がする 本家MLかなあ http://echo.5ch.net/test/read.cgi/tech/1140717775/949
950: デフォルトの名無しさん [sage] 2006/05/29(月) 11:30:12 まだHaskellはできることが少ないっていう認識&広告でいいと思う。 あとスピードも保障できないってことで。その代わりにたくさんメリットがあるわけだし。 http://echo.5ch.net/test/read.cgi/tech/1140717775/950
951: デフォルトの名無しさん [sage] 2006/05/31(水) 15:17:05 ふつうのHaskell買った人いる? http://echo.5ch.net/test/read.cgi/tech/1140717775/951
952: デフォルトの名無しさん [sage] 2006/05/31(水) 15:19:46 すっかり忘れてた http://echo.5ch.net/test/read.cgi/tech/1140717775/952
953: デフォルトの名無しさん [] 2006/05/31(水) 17:12:41 ほほほ本ののちちょちょ調子ははどどどうだっ!?? http://echo.5ch.net/test/read.cgi/tech/1140717775/953
954: デフォルトの名無しさん [sage] 2006/05/31(水) 17:14:03 まさに本調子でした http://echo.5ch.net/test/read.cgi/tech/1140717775/954
955: デフォルトの名無しさん [] 2006/05/31(水) 18:09:39 早速立ち読みしてくるか http://echo.5ch.net/test/read.cgi/tech/1140717775/955
956: デフォルトの名無しさん [] 2006/05/31(水) 18:39:39 おい明日発売じゃないかよ! 騙したな! http://echo.5ch.net/test/read.cgi/tech/1140717775/956
957: デフォルトの名無しさん [sage] 2006/05/31(水) 20:00:58 >>954 誰が上手い事を言えと http://echo.5ch.net/test/read.cgi/tech/1140717775/957
958: デフォルトの名無しさん [sage] 2006/06/01(木) 00:04:31 >>956 同志!! 俺は、近所の本屋、2、3軒のぞきに行っちゃったぜ。 http://echo.5ch.net/test/read.cgi/tech/1140717775/958
959: 956 [] 2006/06/01(木) 03:41:24 >>958 ごめん…実はアマゾンで調べたら明日って事になってたから 実は本屋に行かなかったんだ… http://echo.5ch.net/test/read.cgi/tech/1140717775/959
960: デフォルトの名無しさん [sage] 2006/06/01(木) 10:42:12 こがいだんでも、haskellができるのに。 http://echo.5ch.net/test/read.cgi/tech/1140717775/960
961: デフォルトの名無しさん [] 2006/06/01(木) 18:20:19 ほほほ本の調子はどどどどう!!? http://echo.5ch.net/test/read.cgi/tech/1140717775/961
962: デフォルトの名無しさん [] 2006/06/01(木) 18:25:22 著者はこのスレ覗くの? http://echo.5ch.net/test/read.cgi/tech/1140717775/962
963: デフォルトの名無しさん [sage] 2006/06/01(木) 18:31:47 当たり前。 http://echo.5ch.net/test/read.cgi/tech/1140717775/963
964: デフォルトの名無しさん [sage] 2006/06/01(木) 20:44:29 配本とかさ、混乱させるようなこと書かないで欲しい わざと一般的な書き方しなかったのかな http://echo.5ch.net/test/read.cgi/tech/1140717775/964
965: デフォルトの名無しさん [sage] 2006/06/02(金) 03:04:27 亀レスですまんが、 >>684 Haskellのリストで二分検索ってできるの? 二分検索というからにはO(logN)じゃないと意味がないと思うんだが、 lengthだの!!だの使っている時点でO(N)を越えている気がしてならない。 http://echo.5ch.net/test/read.cgi/tech/1140717775/965
966: デフォルトの名無しさん [sage] 2006/06/02(金) 03:14:12 二分探索は配列用のアルゴリズムだからなぁ。 Haskell なら最初から二分木作った方がいいと思われ。 http://echo.5ch.net/test/read.cgi/tech/1140717775/966
967: デフォルトの名無しさん [sage] 2006/06/02(金) 17:47:57 ビックカメラに置いてあったので買いました。 かなり分かりやすそうです。 http://echo.5ch.net/test/read.cgi/tech/1140717775/967
968: デフォルトの名無しさん [sage] 2006/06/02(金) 17:48:37 >>967 >>951 http://echo.5ch.net/test/read.cgi/tech/1140717775/968
969: デフォルトの名無しさん [sage] 2006/06/02(金) 17:56:33 山積みの「ふつうのHaskell」と3冊「入門Haskell」があったけど、、、、 「入門Haskell」売れまくりだな!! http://echo.5ch.net/test/read.cgi/tech/1140717775/969
970: デフォルトの名無しさん [sage] 2006/06/02(金) 18:25:22 入門Haskellは名前からして初心者が買いそうだけど、名前に釣られたやつら乙って感じだな。 ふつうのHaskellプログラミングの方がまだまし。 http://echo.5ch.net/test/read.cgi/tech/1140717775/970
971: デフォルトの名無しさん [] 2006/06/02(金) 19:24:22 著者さん乙 http://echo.5ch.net/test/read.cgi/tech/1140717775/971
972: デフォルトの名無しさん [sage] 2006/06/02(金) 19:29:33 ふつうのHaskell amazonから発送乙 http://echo.5ch.net/test/read.cgi/tech/1140717775/972
973: デフォルトの名無しさん [sage] 2006/06/02(金) 21:14:24 読んでみた。この本すげーよ。特に第一部は神。 例に沿っていくうちに、極めて自然に構文や標準関数を導入している。 ただ、どっちかというと言語とライブラリの解説が主で、自分でコードを書くための 訓練には余り重点が置かれていないようだ。 しかし、IOモナドの説明がうんこ(世界を持ち出す)なのと、評価と実行を混同してるのは わざとなんだろうか。特に後者は方便の域を越えると思う。最後まで訂正されないし。 http://echo.5ch.net/test/read.cgi/tech/1140717775/973
974: デフォルトの名無しさん [sage] 2006/06/02(金) 21:26:19 本当に、マジ分かりやすいね。 ふつうのLinuxまで読みたくなった。 (これだと某有機氏の本は不要かもって思った。) http://echo.5ch.net/test/read.cgi/tech/1140717775/974
975: デフォルトの名無しさん [sage] 2006/06/02(金) 22:02:45 「神」とか「うんこ」とか、アホみたいな文体やめろ。 http://echo.5ch.net/test/read.cgi/tech/1140717775/975
976: デフォルトの名無しさん [sage] 2006/06/02(金) 22:04:40 2ch特有の言い回しだろ、と http://echo.5ch.net/test/read.cgi/tech/1140717775/976
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 25 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.016s