[過去ログ]
関数型プログラミング言語Haskell Part32 (1002レス)
関数型プログラミング言語Haskell Part32 http://mevius.5ch.net/test/read.cgi/tech/1548720347/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
9: デフォルトの名無しさん [sage] 2019/02/03(日) 12:58:27.43 ID:5bolWXfM haskell紹介してるブログとか色々あるけどどこも肝心要のところがすっぽり抜けててイライラするな・・ 例えば fact 0 = 1 fact n = n * fact(n - 1) これ無限ループになっちゃって終わらないでしょ終端条件も書いてないし。 fact 3を展開すると 3 * ( 2 * ( 1 * ( 1 * ……… 0を入力すれば1になるってことはこの先ずーっと1が繰り返されるだけだし。 同じ値が2度続いたら処理を止めるとか変な仕組みでも入ってるのかねー http://mevius.5ch.net/test/read.cgi/tech/1548720347/9
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
13: デフォルトの名無しさん [sage] 2019/02/03(日) 20:51:10.38 ID:5bolWXfM >>12 それじゃ納得できないんだけども 終わるから大丈夫仕様ですってもやっとするから >>9で書いたように1が無限に続いちゃうと思うんだけどな 0が入力されたら1を返すってことだから 1 - 1でまた繰り返しちゃうよね そもそもどの値が来たら終わるか全く記述がないよね そういうところも納得できないっていうかおかしい http://mevius.5ch.net/test/read.cgi/tech/1548720347/13
15: デフォルトの名無しさん [sage] 2019/02/03(日) 21:13:08.06 ID:5bolWXfM >>14 あの説明で納得するようならここ来てないから あれだとブログの説明と何も変わらない まさか1かtrueを返したら問答無用で終わる仕様だったりするのかねー http://mevius.5ch.net/test/read.cgi/tech/1548720347/15
23: デフォルトの名無しさん [sage] 2019/02/03(日) 21:25:18.35 ID:5bolWXfM >>19 理解したのは>>9の通りで 仮定として1かtrueを返したら再帰は止まる仕様になってると推測してる >>20 だからfact(1)で無限に続いちゃうよね 1 - 1で fact 0をevalしてまたfact(1)になる そこで終了条件が必要だけど何にも書いてないから記述通りならずーっと続く としか見えないんだよね http://mevius.5ch.net/test/read.cgi/tech/1548720347/23
25: デフォルトの名無しさん [sage] 2019/02/03(日) 21:27:00.44 ID:5bolWXfM >>22 ということはやっぱり1を返したら必ず再帰は止まる仕様であってるのかな? だったらすっきりするんだけども http://mevius.5ch.net/test/read.cgi/tech/1548720347/25
33: デフォルトの名無しさん [sage] 2019/02/03(日) 21:33:05.02 ID:5bolWXfM >>28 いやいやfact(1)の評価は0なんだし fact 0の定義があるからまた1 どう考えても続くんだよね そもそも再起から脱出するためのコードがどこにもないから怪しいとも踏んでる 何か前提となってる仕様がありそうだ http://mevius.5ch.net/test/read.cgi/tech/1548720347/33
42: デフォルトの名無しさん [sage] 2019/02/03(日) 21:39:35.29 ID:5bolWXfM >>35 教えてもらったからもう大丈夫だよ 1で再起が止まる仕様なら納得だし >>36 fact(1)を入力したら 1-1を評価するから fact 0 特に問題ないよ 1で止まる仕様らしいからそれを前提にコード考えないといかんのか・・ ややこしいことになるねこれ http://mevius.5ch.net/test/read.cgi/tech/1548720347/42
57: デフォルトの名無しさん [sage] 2019/02/03(日) 21:53:28.07 ID:RwDwNYzW もしかすると、だけど fact 0 = 1 を実行した直後に fact 1 = 1 * fact 0 が続くと考えている? もうしそうだとしたらそこが間違いで fact 0 = 1 fact n = n * fact(n - 1) はそのどちらかしか実行されない http://mevius.5ch.net/test/read.cgi/tech/1548720347/57
60: デフォルトの名無しさん [sage] 2019/02/03(日) 21:57:58.25 ID:5bolWXfM >>56 ごめん意味不明わからん >>57 もちろんそのように考えてる fact 0 = 1の結果はすぐ反映されるんじゃないの? http://mevius.5ch.net/test/read.cgi/tech/1548720347/60
92: デフォルトの名無しさん [sage] 2019/02/03(日) 22:37:00.44 ID:5bolWXfM >>90 だから =3 * 2 * 1 * 1 * fact(1-1) =3 * 2 * 1 * 1 * 1*fact(1-1) =3 * 2 * 1 * 1 * 1*1*fact(1-1) という具合にいつまでもfactは続くよ だから色々納得いかないことあるんだけど http://mevius.5ch.net/test/read.cgi/tech/1548720347/92
95: デフォルトの名無しさん [sage] 2019/02/03(日) 22:41:48.43 ID:5bolWXfM >>94 それで地道にやったら >>9になったよ あれ以外どうしろと・・ http://mevius.5ch.net/test/read.cgi/tech/1548720347/95
112: デフォルトの名無しさん [sage] 2019/02/03(日) 22:56:26.62 ID:o+jOfHnE Cでこんな感じに書いてあげれば分かるのだろうか。 int fact(int n) { switch(n) { case 0: return 1; // fib 0 = 1 default: return n * fact(n-1); // fib n = n * fact (n-1) } } http://mevius.5ch.net/test/read.cgi/tech/1548720347/112
118: デフォルトの名無しさん [sage] 2019/02/03(日) 23:01:37.23 ID:5bolWXfM >>112 なっ まさかそういう意味なの? fact 0 = 1 fact n = n * fact(n - 1) のどちらかしか評価されないとか見ただけじゃわからないって!! あーそういうことかー http://mevius.5ch.net/test/read.cgi/tech/1548720347/118
381: デフォルトの名無しさん [sage] 2019/06/07(金) 00:15:16.82 ID:pdU7zkZH すみません、 凄いH書籍で学習していて疑問に思ったのですが 型クラス中級で、真理値の様な物を持ちうる型、 JavaScriptのfalsyな値を持つ型を作る実習で Intや[ ]を独自のYesNo型のインスタンスにする 例があったのですが 標準で存在する型に後から 独自の型のインスタンスにする事に違和感を感じ バグの温床になるのではという懸念の印象がありました。 オブジェクト嗜好のサブクラスみたいに 「Int」型から「IntYesNo」型を 生成できるのなら違和感ないのですが。 これについての合理性と安全性を明示している 書籍やサイトを知っていたら教えて下さい。 http://mevius.5ch.net/test/read.cgi/tech/1548720347/381
510: デフォルトの名無しさん [sage] 2019/10/08(火) 21:32:14.39 ID:nLwShu/0 何冊か本を読んだけど、Haskell の気持ちがなかなか分からん… http://mevius.5ch.net/test/read.cgi/tech/1548720347/510
624: デフォルトの名無しさん [sage] 2019/10/24(木) 09:09:56.34 ID:M5uvwdA8 >>618 浮動小数においては (a+b)+c != a+(b+c) なんだよ。 http://mevius.5ch.net/test/read.cgi/tech/1548720347/624
661: デフォルトの名無しさん [sage] 2019/11/02(土) 22:57:22.40 ID:r3wI6psG Haskellを勉強するとどんなメリットが有りますか? ? Haskellを使って仕事する開発プロジェクトなんてものは世の中に有るのですか? ? ?が無いなら開発プロジェクトが無くても仕事の効率化などで、役立てる方法は有るのですか? ? ?も無いなら、勉強して得た知識を日々のJava等の開発プロジェクトで役立てる方法は有るのですか? http://mevius.5ch.net/test/read.cgi/tech/1548720347/661
745: デフォルトの名無しさん [sage] 2019/11/07(木) 18:28:48.58 ID:THHm8pjB >>729 横からですけど、ホモロジー代数の有用性を教えてくれませんか? 何に使えるんです? http://mevius.5ch.net/test/read.cgi/tech/1548720347/745
876: デフォルトの名無しさん [] 2019/12/23(月) 17:59:43.65 ID:/flai8cL もしかしてParsecってあんまり使われてない? Parsecのドキュメントが2001年とか古いのしか無くて、最初のサンプルコードすら通らない ライブラリの使い方が解らなくていきなり躓いてる http://mevius.5ch.net/test/read.cgi/tech/1548720347/876
970: デフォルトの名無しさん [sage] 2020/02/05(水) 18:14:57.84 ID:fFjiekZv >>966 > ここでよく題材として挙がるのは圏論だけど これは俺も必要性はあんま感じない プログラムを書く立場ならば圏論なんて知る必要は全くないよ そもそも仮に圏論を知らないと良いプログラムが書けないプログラミング言語があったとしたら そんなプログラミング言語は使い物にならない Haskellerなど一部のプログラマの間での昨今の圏論ブームは少なくとも私には単なる一種のファッションの流行にしか見えないし余り意義を認めない 他人の趣味にケチをつける気はないので、やりたければどうぞ御自由に、としか言いようがない 圏論を知る必要があるとすればプログラムを書く人間ではなくて新しいプログラミング言語の設計をする人間(の一部)だ ただ一つだけ圏論の勉強を擁護しておくと、規模の大きなソフトウェアをメンテナンスしやすい見通しのよい構造を持つように設計する上では 抽象化と一般化という思考能力、ある事柄や概念と他のどの事柄とが対応するのかを適切に理解し判断する能力は非常に重要だ そして数学において圏論の最も重要な効用は正にそういう一般化や抽象化といった思考法を書き表すための言葉としてだ 数学である分野での成果(例えば幾つかの定理や定義)を全く別の分野へと転用するといった数学の発展させ方が可能になったのは 正に20世紀中盤に圏論という言葉が生まれたからこそのお蔭だ だからプログラマが圏論そのものを勉強する必要性は乏しいと思うが、圏論を勉強して理解できる能力と大規模のソフトウェアを良い構造で設計できる能力とは 間違いなく共通した部分があり、正の相関があるのは確実だと個人的には考えている そういう意味では圏論の勉強は大規模ソフトウェアの設計に向く設計者か否かのフィルタリングに使えるかも知れないね http://mevius.5ch.net/test/read.cgi/tech/1548720347/970
977: デフォルトの名無しさん [sage] 2020/02/06(木) 01:01:03.47 ID:OGs/tKtL >>970 大規模ソフトウェアのメンテにおいて、 圏論を知らないとこのように失敗するが、 知っているとこのように成功する、 という具体例を挙げられますか? または、具体例を挙げて説明している本やブログ、 カンファレンスなどを紹介できますか? http://mevius.5ch.net/test/read.cgi/tech/1548720347/977
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.054s