[過去ログ]
関数型プログラミング言語Haskell Part32 (1002レス)
関数型プログラミング言語Haskell Part32 http://mevius.5ch.net/test/read.cgi/tech/1548720347/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
11: ◆QZaw55cn4c [sage] 2019/02/03(日) 15:04:51.94 ID:t4xt++Qj >>9 >無限ループになっちゃって終わらないでしょ終端条件も書いてないし。 いえいえ、終端条件が >fact 0 = 1 です、n ∈ N たる n からはじまって 0 で終わる、と読みます fact 3 = 3 * fact 2 = 3 * 2 * fact 1 = 3 * 2 * 1 * fact 0 = 3 * 2 * 1 * 1 で止まります. http://mevius.5ch.net/test/read.cgi/tech/1548720347/11
19: ◆QZaw55cn4c [sage] 2019/02/03(日) 21:19:41.63 ID:t4xt++Qj >>13 では逆に質問しましょうか、そこから両者が部分的にでも合意できるポイントを探ることにしましょう >>9 >fact 0 = 1 >fact n = n * fact(n - 1) これをあなたはどのように解釈したかを、もう少し詳しめに記述していただくことは可能でしょうか、私の記述は今は >>13 が精一杯ですが、あなたの返答をみて改善できる点はないか検討したいと思います http://mevius.5ch.net/test/read.cgi/tech/1548720347/19
22: ◆QZaw55cn4c [sage] 2019/02/03(日) 21:22:54.49 ID:t4xt++Qj >>18 終了条件は >fact 0 = 1 です。関数 fact の引数が 0 なら、1 を関数の値として返し、fact の求値作業は終了します。 fact への入力が 1 でないならば >fact n = n * fact(n - 1) の定義をつかって、最初の入力 n よりも小さい値 n - 1 (< n) を使った関数定義がつかえるように変換します http://mevius.5ch.net/test/read.cgi/tech/1548720347/22
30: ◆QZaw55cn4c [sage] 2019/02/03(日) 21:31:19.47 ID:t4xt++Qj >>23 >1 - 1で fact 0をevalしてまたfact(1)になる >fact 0 = 1 というのは、関数 fact のうち fact(0) (引数が 0) のときの値は 1 である、と確定的な記述をしています。ここで答えが決まったので、さらに答えを求めるための関数適用作業には入りません、それはそういう意味です どうして eval したあと fact(1) になる、と判断したのでしょうか? fact(0) = 1 の 1 というのは fact() の値であって、fact の引数ではなく、また fact の引数になりうる記述は 「fact 0 = 1」という記述の中には見つからないのですが >fact n = n * fact (n - 1) この記述のなかには、たとえば 引数が 7 だとすると「 fact 8 を fact 7 の値をつかって表現する」ということですから、fact 8 を eval する「途中で」 fact 7 を eval しようとする、ということは書かれています http://mevius.5ch.net/test/read.cgi/tech/1548720347/30
32: ◆QZaw55cn4c [sage] 2019/02/03(日) 21:32:49.97 ID:t4xt++Qj >>25 「1 を返したら」とまるのではなく fact 0 = 1 と fact の求値が、この行で確定しているから、止まるのです。 fact 0 = 100 という定義であっても、とまりますよ http://mevius.5ch.net/test/read.cgi/tech/1548720347/32
36: ◆QZaw55cn4c [sage] 2019/02/03(日) 21:35:45.64 ID:t4xt++Qj >>33 >いやいやfact(1)の評価は0なんだし ここが違っています。 fact(1) の評価は 1 * fact(0) であって、 0 じゃないです fact(0) の値が具体的になにかは、fact(0) を意識しはじめた時点では分からないのですよ http://mevius.5ch.net/test/read.cgi/tech/1548720347/36
46: ◆QZaw55cn4c [sage] 2019/02/03(日) 21:43:22.74 ID:t4xt++Qj >>42 >1で再起が止まる仕様なら納得だし 理解が不十分じゃないかと危惧します、その台詞「1 で再起がとまる」という言葉ですが、「何が」 1 で再起が止まる、と考えているのですか? あなたの発言は、いちいち「何が」「どうだ」の「何が」が欠けているので不安です http://mevius.5ch.net/test/read.cgi/tech/1548720347/46
47: ◆QZaw55cn4c [sage] 2019/02/03(日) 21:43:58.19 ID:t4xt++Qj >>44 覚える、という言葉はこういうときに使うものではないと思いますよ http://mevius.5ch.net/test/read.cgi/tech/1548720347/47
51: ◆QZaw55cn4c [sage] 2019/02/03(日) 21:47:09.11 ID:t4xt++Qj >>42 >fact(1)を入力したら 1-1を評価する どうしてそう考えたのですか?そのような記述がどこに書かれていたのか説明いただけませんか? http://mevius.5ch.net/test/read.cgi/tech/1548720347/51
56: ◆QZaw55cn4c [sage] 2019/02/03(日) 21:52:52.90 ID:t4xt++Qj >>50 >この記述だと無限に *1が続くわけだから あなたの理解になにが足りないのかがわかるような気がしてきました。 「fact の引数が 1 である」と「fact の求値が 1 である」とを区別していないようですね この二つは厳然として異なります fact 0 = 1 は、fact(0) の「求値が」1 である、といっているのです fact n = n * fact (n - 1) は、たとえば fact 8 = 8 * fact 7 fact 7 = 7 * fact 6 fact 6 = 6 * fact 5 fact 5 = 5 * fact 4 fact 4 = 4 * fact 3 fact 3 = 3 * fact 2 fact 2 = 2 * fact 1 という記述を纏めて表現しているのであり、これは fact n の「求値」は fact (n - 1) という、もともとの引数 n とは違う n - 1 という引数を使った fact の求値で定義しているのです http://mevius.5ch.net/test/read.cgi/tech/1548720347/56
58: ◆QZaw55cn4c [sage] 2019/02/03(日) 21:53:48.18 ID:t4xt++Qj >>53 >1で再帰は必ず止まるんでない 「何が」 1 で再帰が止まる、と考えているのですか? 「何が」の部分を答えてください http://mevius.5ch.net/test/read.cgi/tech/1548720347/58
59: ◆QZaw55cn4c [sage] 2019/02/03(日) 21:56:12.46 ID:t4xt++Qj >>54 >fact 0で1が出てきたら、 何が 1 となるのか、そこをはっきり書いてください、「出てきたら」っていいますが、「何が」 1 と出てきたら、なんでしょうか? >また、勝手に再帰させて 何が 1 となるのか、0 となるのか、そこをはっきりさせないことには、それ以降の思考は不可能ですよ、あなたには「また勝手に再帰させて」とかいうことを考える段階ではありません http://mevius.5ch.net/test/read.cgi/tech/1548720347/59
62: ◆QZaw55cn4c [sage] 2019/02/03(日) 21:59:44.40 ID:t4xt++Qj >>61 これは失礼… http://mevius.5ch.net/test/read.cgi/tech/1548720347/62
105: ◆QZaw55cn4c [sage] 2019/02/03(日) 22:51:43.03 ID:t4xt++Qj >>64 >またfact(1-1) どうしてそのように推測したのですか?その 1 - 1 ってどこから誘導したのですか? http://mevius.5ch.net/test/read.cgi/tech/1548720347/105
107: ◆QZaw55cn4c [sage] 2019/02/03(日) 22:53:55.48 ID:t4xt++Qj >>79 >fact 0は1なんだからその次はfact(1)になるでしょ ちがいますよ。なんども言っていますが「fact 0 は 1 」、っていう言葉が不正確ですね、fact 0 の「何が」 1 なんでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1548720347/107
109: ◆QZaw55cn4c [sage] 2019/02/03(日) 22:54:49.82 ID:t4xt++Qj >>86 >fact 0は1なんだから続くじゃない? fact 0 の「何が」 1 なんですか?そこが他の者と違っている点かと思います http://mevius.5ch.net/test/read.cgi/tech/1548720347/109
110: ◆QZaw55cn4c [sage] 2019/02/03(日) 22:55:58.80 ID:t4xt++Qj >>92 3 * 2 * 1 * 1 * fact(1-1) その 1 - 1 はどういう理由で 1 - 1 と書いたのですか? http://mevius.5ch.net/test/read.cgi/tech/1548720347/110
115: ◆QZaw55cn4c [sage] 2019/02/03(日) 22:58:55.27 ID:t4xt++Qj >>111 あなたは 「fact 0 が 1 」といっていますが、我々は「fact 0 の値が 1」と「fact の引数が 1」とを別のものとして区別しているのです あなたは区別していますか?あるいは「fact 0 が 1」というけれども fact 0 の何が 1 なんですか? http://mevius.5ch.net/test/read.cgi/tech/1548720347/115
117: ◆QZaw55cn4c [sage] 2019/02/03(日) 22:59:45.17 ID:t4xt++Qj >>114 結果は結果、引数は引数です 結果を引数に入れたり、引数を結果にいれたりしていないのですよ http://mevius.5ch.net/test/read.cgi/tech/1548720347/117
123: ◆QZaw55cn4c [sage] 2019/02/03(日) 23:03:47.98 ID:t4xt++Qj >>118 そこでしたか! うーん、それは見抜けなかったですね、いろいろしつこい質問をしてごめんなさい http://mevius.5ch.net/test/read.cgi/tech/1548720347/123
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.144s