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
652 名前:デフォルトの名無しさん mailto:sage [2005/06/07(火) 05:06:03 ] Haskellで数式処理システム作ろう!とかいう噺があったやうな…?
653 名前:デフォルトの名無しさん mailto:sage [2005/06/07(火) 05:44:29 ] >>649 こんどはCIAか?
654 名前:デフォルトの名無しさん mailto:sage [2005/06/07(火) 22:43:11 ] いや、FBIです
655 名前:デフォルトの名無しさん [2005/06/10(金) 17:09:38 ] 649>>haskell.org/hawiki/MonadTransformers に簡単なつかいかたとかあるよ。がんばれ!
656 名前:デフォルトの名無しさん [2005/06/29(水) 17:18:46 ] WinXPにHugsを導入したんですけど、読み込みまでは行くみたいなんですけど 実行してみると結果が表示されません。 例えば myfactorial :: Int -> Int myfactorial n | n == 0 = 1 | otherwise = n * myfactorial (n-1) というファイルを読み込んで myfactorial 5 と入力しても何も結果が表示されずに Main> という状態に戻ってしまいます。何か原因があるのでしょうか。
657 名前:¬656 mailto:sage [2005/06/29(水) 22:55:14 ] XPでやってみたところ、GUIのやつ(WinHugs)が駄目なようです。 オプションあたりが怪しいけどサパーリ
658 名前:デフォルトの名無しさん mailto:sage [2005/07/04(月) 22:20:14 ] ghcでControl.Monad.Readerをインポートすると Monad ((->) r)のインスタンス宣言(中味はReaderと同じ)が 付いてくるっぽいんだが、いったいこれは何なんだ? かなり便利だから積極的に使いたい気もするけど、 ドキュメントされてないみたいだし。 import Control.Monad.Reader -- 3で割れて、かつ5で割れない自然数 t = filter (liftM2 (&&) ((==0) . (`mod`3)) ((/=0) . (`mod`5))) [0..]
659 名前:デフォルトの名無しさん mailto:sage [2005/07/04(月) 23:50:56 ] Vital 使ってる人居ます? www.cs.kent.ac.uk/projects/vital/
660 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 19:53:36 ] I/Oをマクロは解決しないか
661 名前:デフォルトの名無しさん [2005/07/11(月) 23:39:29 ] FpLの抽象構文を拡張して、利用者定義関数が算術式と論理式とを混在してとることができるようにするにはどうすればよろしいですか?評価意味論を適当に拡張するらしいのですが・・・
662 名前:デフォルトの名無しさん [2005/07/11(月) 23:40:00 ] 名前呼びを用いると、ある式eに対してD,ρ├ e ⇒ A kとなる数字kが存在するけれども、値呼びを用いると、D,ρ├ e ⇒ A kとなる数字が存在しない宣言の例ってありますか?
663 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 07:34:27 ] まず元ねたを書け。話はそれから。
664 名前:デフォルトの名無しさん mailto:sage [2005/07/19(火) 18:29:38 ] 圏論の基礎 日本語訳 S.マックレーン www.amazon.co.jp/exec/obidos/ASIN/4431708723/qid=1121765296/sr=8-1/ref=sr_8_xs_ap_i1_xgl/250-1176990-6892214
665 名前:デフォルトの名無しさん mailto:sage [2005/07/19(火) 20:19:44 ] "Catefories for Working Mathematician" (働く数学屋のための圏論) の題名が 「圏論の基礎」になっちまうんだとしたら、 "Categories, Types, and Structures: An Introduction to Category Theory for the Working Computer Scientist (Foundations of Computing Series)" の題名はどーなるんだ? 「一週間で判る!くもんしきけんろん (いちねんせいむけ)」か(笑
666 名前:デフォルトの名無しさん mailto:sage [2005/07/19(火) 20:31:23 ] >>664 買っちゃった。
667 名前:デフォルトの名無しさん mailto:sage [2005/07/19(火) 20:43:25 ] >>666 でどうよ? >>665 "Basic Category Theory for Computer Scientists (Foundations of Computing)" 「圏論の超基礎」つうのもある・・・
668 名前:デフォルトの名無しさん mailto:sage [2005/07/19(火) 20:47:40 ] "Categorical Logic and Type Theory (Studies in Logic and the Foundations of Mathematics)" 「論理&数学ラブ♥な人のための、カテゴリー・ロジックと型理論」 なんつう分厚い数学書も買うには買ったけど、これは完全に死蔵本だな、たぶん。
669 名前:デフォルトの名無しさん [2005/07/19(火) 20:49:10 ] ってな意味で、いきなり訳書を読めるアンタ(>>666 )、 幸せ者だぞゴラァ!!!
670 名前:デフォルトの名無しさん mailto:sage [2005/07/19(火) 21:17:36 ] >>667 誤植が多いみたい。
671 名前:デフォルトの名無しさん mailto:sage [2005/07/19(火) 22:24:11 ] 誤訳じゃなくて誤植ってのが泣けるね。
672 名前:デフォルトの名無しさん mailto:sage [2005/07/19(火) 23:39:47 ] 「できる圏論」
673 名前:デフォルトの名無しさん mailto:sage [2005/07/19(火) 23:40:57 ] モノイダル圏とか分からない件
674 名前:デフォルトの名無しさん [2005/07/21(木) 16:22:11 ] www.sampou.org/haskell/tutorial-j/goodies.html 暇だからこれ読んでたんだが、ユーザ定義型のデータ構築子と型構築子の意味が分らん。 誰かなんかC,C++の似たような概念の用語で分りやすい説明キボンヌ。
675 名前:デフォルトの名無しさん mailto:sage [2005/07/21(木) 18:51:43 ] データ構築子 <=> classのコンストラクタ 型構築子 <=> template
676 名前:デフォルトの名無しさん mailto:sage [2005/07/21(木) 21:21:07 ] 型構築子はtypedefでは?
677 名前:デフォルトの名無しさん mailto:sage [2005/07/21(木) 21:34:50 ] typedef は多相(総称?)型の定義ができんでしょ。
678 名前:デフォルトの名無しさん mailto:sage [2005/07/21(木) 23:42:00 ] CやC++でプリミティブと言われてる型は、Haskellでは全て列挙型 という見方をするの? data Int = -65332 | ... | -1 | 0 | 1 | ... | 65332 という例が載ってるけど、こんな感じに、 新たに型を作る。作られる型がデータ構築子 そのときに型のデータのインスタンスを列挙する。列挙されるのがデータ構築子。 こんな感じでいいのかな?頭悪くてすいませんねw
679 名前:デフォルトの名無しさん mailto:sage [2005/07/21(木) 23:43:28 ] ×新たに型を作る。作られる型がデータ構築子 ○新たに型を作る。作られる型が型構築子
680 名前:デフォルトの名無しさん mailto:sage [2005/07/21(木) 23:52:20 ] しかし新たに型を定義する式のためのキーワードがdataで、 Cのtypedef風なものにtypeが使われてるのはなんかちょっと違和感あるというか。 typeはいいとして、なんでdataなの?
681 名前:デフォルトの名無しさん mailto:sage [2005/07/22(金) 00:54:47 ] >>680 データ型宣言だから、では駄目かい?
682 名前:デフォルトの名無しさん mailto:sage [2005/07/22(金) 08:43:46 ] >>681 厨房臭いんですが、dataってのは納得できないですね。 それはまあいいとして、このスレはちょっとレベルが違いすぎるので、 初心者はこっちで質問することにしました。どうもです。 関数型言語Part IV pc8.2ch.net/test/read.cgi/tech/1083649982/
683 名前:デフォルトの名無しさん mailto:sage [2005/07/22(金) 08:52:28 ] 言語に特有の質問なんだから、このスレのほうがいいんじゃないか?
684 名前:デフォルトの名無しさん mailto:sage [2005/07/22(金) 13:15:03 ] SMLはtype synonym宣言に'type'、データ型宣言に'datatype'を使う。 Haskellはそいつを参考にしたが、'datatype'は長いので'data'にした。 というのも考えられるかも。
685 名前:デフォルトの名無しさん mailto:sage [2005/07/22(金) 13:45:51 ] OCamlなら全部typeで済ませられるぞ(逆に言うと宣言の見掛け上区別できない)。
686 名前:デフォルトの名無しさん mailto:sage [2005/07/27(水) 20:28:46 ] Peyton Jonesの本が面白すぎて夜も眠れません。
687 名前:デフォルトの名無しさん mailto:sage [2005/07/28(木) 01:59:51 ] HaskellからCleanに宗派変えてみる。
688 名前:デフォルトの名無しさん mailto:sage [2005/08/13(土) 00:17:46 ] ここでは、こういうネタはスレ違い? www.geocities.jp/takascience/windows/monadius.html 本家からもリンクされてる。 Monadius A shoot 'em up game using OpenGL. Takayuki Muranushi also wrote a couple of other games in Haskell. www.haskell.org/practice.html
689 名前:デフォルトの名無しさん mailto:sage [2005/08/26(金) 17:04:35 ] _|_って何から来てるんですか? 数学?
690 名前:デフォルトの名無しさん mailto:sage [2005/08/26(金) 18:12:56 ] >>689 うん
691 名前:デフォルトの名無しさん mailto:sage [2005/08/26(金) 20:28:34 ] どの分野か教えてもらえますか?これも圏論?
692 名前:デフォルトの名無しさん mailto:sage [2005/09/06(火) 17:46:57 ] 越田先生@東京工科大のレジュメ www.teu.ac.jp/kougi/koshida/Prog6/ ってのは、今はどこで見れるの?
693 名前:デフォルトの名無しさん mailto:sage [2005/09/06(火) 18:33:49 ] www.teu.ac.jp/10/002921.html もう読めないのかも。Internet archiveにはあるか?
694 名前:デフォルトの名無しさん mailto:sage [2005/09/06(火) 19:48:40 ] >>693 亡くなられたのか……まだ若いのに。 プログラム工学VI 授業関連資料 web.archive.org/web/20031014180912/http://www.teu.ac.jp/kougi/koshida/Prog6/index.html
695 名前:デフォルトの名無しさん mailto:sageチラシの裏にでも書いています [2005/09/07(水) 00:28:33 ] >>693 うへー、マジカヨ。 ご冥福をお祈りいたします。
696 名前:デフォルトの名無しさん mailto:sage [2005/09/07(水) 00:32:24 ] 貴重な(ry
697 名前:デフォルトの名無しさん mailto:sage [2005/09/07(水) 01:58:27 ] この人のチュートリアルをどこかにページにそのままうpしたらまずいのかな? 需要はかなりあると思うのだが。
698 名前:デフォルトの名無しさん mailto:sage [2005/09/07(水) 14:24:35 ] それより誰かが成書に仕上げて印税が遺族に行くようにできるとよいな。
699 名前:デフォルトの名無しさん mailto:sage [2005/09/07(水) 19:19:39 ] おいおい越田先生、死んだのかよ。面識なんてもちろんないけど チュートリアル何度も読んでたから、泣けてくるじゃネーか 合掌(-人-)
700 名前:デフォルトの名無しさん mailto:sage [2005/09/13(火) 02:08:53 ] >>693 ひさしぶりに覗いたら悲しい知らせが。 南無。 そしてありがとう。
701 名前:デフォルトの名無しさん mailto:sage [2005/09/15(木) 09:54:51 ] mono.kmc.gr.jp/~oxy/hiki.cgi?rtype
702 名前:デフォルトの名無しさん mailto:sage [2005/09/16(金) 03:51:24 ] Ruby 2.0 勝手に実装してくれよ
703 名前:デフォルトの名無しさん mailto:sage [2005/09/16(金) 04:46:06 ] 実装できるほどの仕様が決っていないのでは?
704 名前:デフォルトの名無しさん mailto:sage [2005/09/19(月) 17:14:40 ] ここでPugsの話題が出ないのが謎 本家よりずっと先にリリースって、すげーと思わない?
705 名前:デフォルトの名無しさん [2005/09/21(水) 02:03:18 ] すげー過疎 とりあえずVersion 6.4.1リリースage
706 名前:デフォルトの名無しさん [2005/09/24(土) 00:34:03 ] 引数のパターンマッチング guard if-then-else case-of って基本的には同じですか?
707 名前:デフォルトの名無しさん [2005/09/24(土) 01:44:59 ] 引数のパターンマッチングと case-of はほとんど同じと考えてよい。 if とパターンマッチは違う。 パターンマッチには真理値で条件を与えることができる。これはガード部とか 言われる。 guard がそのことを指して書いたのであれば、 if と似ていると は言えるかもしれない。 guard 関数はぜんぜんまったく関係ない。
708 名前:デフォルトの名無しさん mailto:sage [2005/09/24(土) 11:29:13 ] if b then t else f は case b of { True -> t; False -> f; } の省略記法。この意味では同じといえると思う。
709 名前:デフォルトの名無しさん mailto:sage [2005/09/24(土) 16:38:46 ] その4つは束縛変数を導入できるかという点で区別することもできるね。
710 名前:デフォルトの名無しさん mailto:sage [2005/09/24(土) 19:55:50 ] ここにいる奴って、普段何してるんだよ haskellでオナニーできてるか?
711 名前:デフォルトの名無しさん mailto:sage [2005/09/24(土) 21:19:20 ] 昨日STGで2回…
712 名前:デフォルトの名無しさん mailto:sage [2005/09/24(土) 23:20:51 ] monadタソ(;´Д`)ハァハァ
713 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 18:07:59 ] ★〜彼方の願い星〜★ このレスを見た人は、超ラッキーな人♪ でも、このレスを見ただけじゃ何も起らないよ。 効果を実感したいなら、このレスを5回違うスレにレスしてね♪ だぁい好きなあの人に告られたり、 成績がどんどん良くな★〜彼方の願い星〜★ このレスを見た人は、超ラッキーな人♪ でも、このレスを見ただけじゃ何も起らないよ。 効果を実感したいなら、このレスを5回違うスレにレスしてね♪ だぁい好きなあの人に告られたり、 成績がどんどん良くなって、先生に褒められちゃったり...。 次々とHAPPYな事が訪れます♪ 此の頃変なのがいっぱい回★〜彼方の願い星〜★ このレスを見た人は、超ラッキーな人♪ でも、このレスを見ただけじゃ何も起らないよ。 効果を実感したいなら、このレスを5回違うスレにレスしてね♪ だぁい好きなあの人に告られたり、 成績がどんどん良くなって、先生に褒められちゃったり...。 次々とHAPPYな事が訪れます♪ 此の頃変なのがいっぱい回っ★〜彼方の願い星〜★ このレスを見た人は、超ラッキーな人♪ でも、このレスを見ただけじゃ何も起らないよ。 効果を実感したいなら、このレスを5回違うスレにレスしてね♪ だ これが本物の、初代HAPPYメールです♪ってますが、これは本当です!! これが本物の、初代HAPPYメールです♪って、先生に褒められちゃったり...。 次々とHAPPYな事が訪れます♪ 此の頃変なのがいっぱい回ってますが、これは本当です!! これが本物の、初代HAPPYメールです♪
714 名前:デフォルトの名無しさん mailto:sage [2005/09/28(水) 23:39:39 ] Emacsのハスケルモ〜ドって使いにくくないですか? 特にインデントが何回も叩かないと希望の位置にこない。
715 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 00:00:52 ] haskell-mode、出来はすごく良いと思うけど。 インデントはすくなくとも手で揃えるより楽だし、ローテートしてくれるのは良いよ。 関数定義も補完してくれるし。 ただcase 〜 of のインデント位置のポリシーだけは気にいらないな。あれは of の前で改行することを想定しているのだろうか。
716 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 00:29:05 ] そうですか。もうちょっと頑張って使い込んでみます。 あと、M-x turn-on-haskell-hugs して C-c C-l するとEmacsが固まって C-g打つまで帰ってこなくなるんですが、何か設定が必要なのでしょうか? Hugs.Base> というプロンプトで一回 :load して、プロンプトが Main> になった後はすんなり動くんですが。 Emacsのバージョンは21.3です。
717 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 01:20:23 ] Haskell-modeは優秀だと思う。
718 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 01:40:00 ] >716 そういう症状は体験したことがないなあ。自分はおおむね www.haskell.org/haskell-mode/installation-guide.html のように設定している。 でも最近はもっぱら ghci で hugs を使ってませんねぇ。
719 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 12:16:49 ] 716ですが原因を特定しました。 私の環境ではhugsを起動した直後のプロンプトは Hugs.Base> なのですが、huskell-hugs-start-processでcomint-prompt-regexpに設定する パターンが"^\? \\|^[A-Z][_a-zA-Z0-9]*> "となっていて ドットを含まないためのようです。これを修正すると問題は解消しました。 (せめてdefvarしていて欲しかった……) hugsもhaskell-mode.elもFreeBSDのportsで入れたのですが、みなさんの hugsではプロンプトは別の文字列なのでしょうか?
720 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 20:46:48 ] >719 少し前(200311_1)には Prelude> だったが、今は確かに Hugs.Base> になってるね。
721 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 22:28:13 ] Haskell 使おうっと思ってんだけど、サンプルプログラムがなきゃ分からん。 いきなり Pugs, Rtype, Monadius だと手ごわすぎるので、もうちょい下のレベルで、 おすすめを教えて頂戴。 ウェブアプリを作ることがほとんどなので、Wiki, Blog(Diary), BBS 辺りが理想なんだけど。
722 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 22:57:36 ] >>721 俺は特に何かをお薦めする程わかっちゃいないが、取り合えず www.haskell.org/practice.html を紹介しとく。
723 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 23:04:55 ] >>722 さんきゅ。 とりあえず、 Flippi: a Wiki clone written in Haskell www.flippac.org/projects/flippi/ でも見てみるよ。
724 名前:デフォルトの名無しさん [2005/09/30(金) 11:39:06 ] 「連載: Haskellプログラミング」のメモ化のところがよーわからん。 State s t、withState、bindStateのところで詰まってしまった。 誰か日本語でわかりやすく説明して!
725 名前:デフォルトの名無しさん mailto:sage [2005/09/30(金) 17:42:10 ] Stateモナドの知識がないと難解だと思う。 type State s t = s -> (t, s) というのは、現在の状態を受け取って新しい状態とさらに何かを返す関数。 だから、State s t型の値を「状態を変更してついでに値を生み出す仕掛け」と見ることができる。 ここで、「状態を変更せずに常に決められた値xを生み出す仕掛け」は \state -> (x, state) と書ける。これがwithState x。 一方、「起動されたとき仕掛けxと仕掛けyが順に起動されたかのように振る舞う仕掛けthenState x y」は 次のように定義できる。 thenState :: State s a -> State s b -> State s b thenState x y = \s0 -> let (_, s1) = x s0 in -- xに初期状態s0を与えて起動、中間状態s1を得る。xによって生成された値は無視。 y s1 -- yに中間状態s1を与えて起動、終状態と値の組を得る。これはそのまま合成されたしかけの戻り値となる。 thenStateではxによって生成された値を無視したが、この値に基づいて 次に何をするか決めることができないと面白くない。そこで、yとして単なる仕掛けではなく、 「xによって生成された値を受け取って仕掛けを返す関数」を渡すことにする。 bindState :: State s a -> (a -> State s b) -> State s b bindState x y = \s0 -> let (result, s1) = x s0 in -- xを起動し… (y result) s1 -- …次に(y result)を起動
726 名前:デフォルトの名無しさん mailto:sage [2005/09/30(金) 22:49:12 ] すごくわかりやすい! あなたとても賢いね。 どうもありがとうございました。 State s t を状態遷移図での状態aから状態bへの矢印とイメージしました。 withState x は、状態遷移図で状態aから同じ状態aへ戻る矢印(出力x)ですね。
727 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 11:13:33 ] Haskell はなかなか自分の思い通りにかけるようにならない orz
728 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 14:23:21 ] Cとかと違ってプログラマのほうに能力がないと何もできんよな……
729 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 20:48:54 ] Haskellで書くとバグがなくなると聞いたんですが本当ですか?
730 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 22:48:41 ] バグは出にくいが慣れないうちは普通にコンパイルを通すだけで苦労する。
731 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 23:21:49 ] >>729 俺も最初はランタイムエラーは絶対出ないものと思ってたけど guardとかの場合わけ漏れとか パターンマッチの不整合エラーがたまにある、、、 ぬるぽとかと比べて感覚的に頻度少ないけどね。
732 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 23:59:39 ] >>729 いいえ
733 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 00:42:37 ] 整数をゼロで割ると実行時エラーになるし。 完全でないパターンマッチは、ghcなら警告を出させることもできるから、 あとはプログラマの問題という気がするが。
734 名前:724 mailto:sage [2005/10/02(日) 05:03:11 ] 「連載: Haskellプログラミング」の9月号分を読んで なんとなく理解したところでは Haskellで評価の順序を強制するためにはCPSのように書くことが必要で、 Monadは継続に付加情報を(連続的にというか玉突き的にというか)持ち回る道具、 do構文はそれを手続き型のように書く構文、 というところだろうか?
735 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 08:35:39 ] Monadは全てを記号論的に処理する枠組み doは状態遷移を隠蔽するモナド関数 で合ってる?
736 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 09:44:07 ] >>734 Stateモナドについてならその理解でいいと思う。 ただし、モナドの意味論は個々のモナドでかわる。モナドそのものは 「do記法で書くことのできるひとまとまりの計算の構成を支援するもの」くらいではないかな。 たとえばIOモナドは副作用が存在しうるような場合の計算の順序の保証する。 Maybeモナドは途中でNothingになるかもしれない計算のまとまりを構成する。 などなど。 あとは「モナドのすべて」を読むといいと思うよ。 www.sampou.org/haskell/a-a-monads/html/index.html
737 名前:デフォルトの名無しさん mailto:sage [2005/10/03(月) 20:52:08 ] /\ / \ 今このとき,モナドは立ち上がる /∧_∧ \ /( ´∀`) /\ \( ) / \ \ / \ \/ \ ∧∧∧∧\ ( ´/) ))ヽ∧ / / / ´∀) ∧∧ ○( イ○ ( ,つ, ,゚Д゚) /ヽ )) ヽ )ヽ )と , イ (_/(_/(_/(_/ノ(_/⊂ノ> )J / ̄Y ̄`|/ ̄^Y ̄ヽ/ ̄ ̄Y
738 名前:デフォルトの名無しさん mailto:sage [2005/11/01(火) 01:17:46 ] 純粋関数型言語を業務で使ってみたい。
739 名前:デフォルトの名無しさん mailto:sage [2005/11/01(火) 01:23:35 ] ぜひ使ってくれ
740 名前:デフォルトの名無しさん mailto:sage [2005/11/02(水) 01:11:11 ] あなたの業務が研究・教育ならいくらでも…
741 名前:デフォルトの名無しさん mailto:sage [2005/11/03(木) 10:35:10 ] hasktags って使える? 誰か、 GHCmacs でも作ってくえ。
742 名前:デフォルトの名無しさん mailto:sage [2005/11/12(土) 10:24:33 ] 行列をhaskellで実装する場合、単位元ってモナドで表現する?
743 名前:デフォルトの名無しさん mailto:sage [2005/11/12(土) 19:00:45 ] 連載 Hakellプログラミングの8月号にのってる 両替問題の最初でつまづいてしまいました。 cc ::Amount -> [Coin] -> Count という関数を a < 0でないとき cc a (c:cs) = cc (a-c) (c:cs) + cc a cs と定義してますが、なぜこれで指定した金額aの両替の組み合わせ個数になるんですか? 初歩的な質問で済みませんが教えてください。
744 名前:デフォルトの名無しさん mailto:sage [2005/11/12(土) 19:11:23 ] >>743 貨幣cを一つ以上使う場合の数は、cを一つ使った後の両替を考えて、cc (a-c) (c:cs) 貨幣cを一つも使わない場合の数は、cc a cs この和が求めるものになる。
745 名前:デフォルトの名無しさん mailto:sage [2005/11/12(土) 19:30:54 ] >>744 なるほど。 うまく考えるものですね。 ありがとうございました。
746 名前:デフォルトの名無しさん mailto:sage [2005/11/12(土) 20:31:08 ] 簡単な例を作るといいよ 10円 を 5円 と 1円 で両替して樹形図を書く
747 名前:デフォルトの名無しさん mailto:sage [2005/11/12(土) 21:27:57 ] 高校でやったろ? 順列と組み合わせ。
748 名前:デフォルトの名無しさん mailto:sage [2005/11/12(土) 21:38:52 ] >>747 お前がいまやってるんだろ?ww
749 名前:デフォルトの名無しさん mailto:sage [2005/11/13(日) 02:16:56 ] 母関数を使えば簡単に計算できるのに
750 名前:デフォルトの名無しさん mailto:sage [2005/11/13(日) 09:14:43 ] >>748 今頃やってるとしたら遅すぎると思うんだが。 夏頃やってたような。昔の記憶だが。
751 名前:デフォルトの名無しさん mailto:sage [2005/11/13(日) 22:17:02 ] >>749 母関数から特定の項を取り出す手間とボトムアップに解を構成する手間はいっしょ
752 名前:デフォルトの名無しさん mailto:sage [2005/11/14(月) 06:49:45 ] >>751 母関数から特定の項を取り出すのは紙と鉛筆で簡単にできるでしょ。 わざわざプログラムなんて書く必要もない。