- 関数型プログラミング言語Haskell Part29 [転載禁止]©2ch.net
443 :デフォルトの名無しさん[sage]:2015/09/08(火) 00:02:16.96 ID:FdaSRh76 - >>440
それが後置演算子だとすると (2 +)と(+ 2) で(+)が別の演算子だということになってしまう。 数式の構文解析で(-)が単項演算子と二項演算子の両方に使われるせいで BNFが無駄に複雑化するの知ってるでしょ? 同じことが(-)だけでなく二項演算子一般について大規模に生じてイヤなわけ。
|
- 【Erlang】プログラム言語 Elixir 【BEAM】 [転載禁止]©2ch.net
55 :デフォルトの名無しさん[]:2015/09/08(火) 20:06:09.99 ID:FdaSRh76 - 関数がカリー化されてないのが辛すぎる
全部適用時には普通にやればいいんだから実行時コストは変わらないはずなのに これでは折角のパイプライン演算子が役に立たないではないか……
|
- 【Erlang】プログラム言語 Elixir 【BEAM】 [転載禁止]©2ch.net
56 :デフォルトの名無しさん[]:2015/09/08(火) 20:09:05.93 ID:FdaSRh76 - LFEは余りに薄いし、ErlangのVM上に静的型付けでML系の文法な言語とかあればいいのに……
|
- 関数型プログラミング言語Haskell Part29 [転載禁止]©2ch.net
448 :デフォルトの名無しさん[sage]:2015/09/08(火) 22:04:03.13 ID:FdaSRh76 - >>445
>「モナドは値を箱の中に入れるので外からは見えない、だから安全だ」 >っていう話をよく聞くけど、 そんな話を聞いた覚えがないのだが……
|
- 関数型プログラミング言語Haskell Part29 [転載禁止]©2ch.net
451 :デフォルトの名無しさん[sage]:2015/09/08(火) 22:17:47.80 ID:FdaSRh76 - >>450
>IOモナドなんかそんな風に言われるじゃん。 >でもIOモナドに入れた値だってfromJustで取り出せる。 ??? まず前半、聞いたことがない。そういうこと言ってる実例挙げられる? 後半、意味がわからない。
|
- 関数型プログラミング言語Haskell Part29 [転載禁止]©2ch.net
456 :デフォルトの名無しさん[sage]:2015/09/08(火) 23:44:27.36 ID:FdaSRh76 - >>455
>モナドはデストラクタを隠蔽するのが肝なんだよな。 データ構築子のこと? runXX の形でモナドの実体を取り出せるモナドは珍しくないし、 IOモナドもそこは変わらないよ? IO aの実体をWorld -> (a, World)として取り出してもありがたくないだけで >だからparsecとかIOとかをみて、初めてありがたみがわかった。 うーん、その感覚はさっぱり 隠蔽云々とは関係なくリストモナドだろうがIOモナドだろうがありがたいけどなあ
|
- 関数型プログラミング言語Haskell Part29 [転載禁止]©2ch.net
457 :デフォルトの名無しさん[sage]:2015/09/08(火) 23:52:35.54 ID:FdaSRh76 - Maybeモナドの場合なら、return (つまりJust)に突っ込んで得られない
Maybe a の値、つまりNothingによって集合aを拡大していることになるわけで、 この拡大された集合a+上の計算を、元々のaの計算から自然に与えることが できるようなそういう拡大の仕方とその構造のことをモナドというわけ。 Maybeほどストレートではないけど、他のモナドも基本は一緒。 これはデータ構築子が公開されててパターンマッチできるかどうか、とか 或いはそれと等価な関数が公開されてるかどうか、とかとは関係のない話。
|