- 関数型プログラミング言語Haskell Part27_©2ch.net
336 :デフォルトの名無しさん[]:2015/01/29(木) 21:20:00.38 ID:TKGinLzw - 初歩的な疑問だがApplicativeについて教えてくれんか。
<*> [f g h] [1 2 3] = [f(1) f(2) f(3) g(1) g(2) g(3) h(1) h(2) h(3)] になるようだが、なぜ、 <*> [f g h] [1 2 3] = [f(1) g(2) h(3)] になるように定義されていないの?
|
- 関数型プログラミング言語Haskell Part27_©2ch.net
339 :デフォルトの名無しさん[]:2015/01/29(木) 21:38:09.04 ID:TKGinLzw - >>337
> Identity Law : pure id <*> v = v そう言うなら、なぜこの規則を課すのがよいの?という疑問なのだが
|
- 関数型プログラミング言語Haskell Part27_©2ch.net
340 :デフォルトの名無しさん[sage]:2015/01/29(木) 21:43:50.38 ID:TKGinLzw - >>338
結局、そうなってるからそうなってる、と理解しろってこと?
|
- 関数型プログラミング言語Haskell Part27_©2ch.net
342 :デフォルトの名無しさん[sage]:2015/01/29(木) 22:06:52.89 ID:TKGinLzw - Identity Law つまり
<*> [id] [1 2 3] = [1 2 3] は納得したとして、それから <*> [f g h] [1 2 3] = [f(1) f(2) f(3) g(1) g(2) g(3) h(1) h(2) h(3)] はどうやって出てくるの?
|
- 関数型プログラミング言語Haskell Part27_©2ch.net
348 :デフォルトの名無しさん[sage]:2015/01/29(木) 23:01:34.47 ID:TKGinLzw - みなさん、丁寧に教えてくれてありがとう。
一気には咀嚼できないのでこのへんでちょっと読み返してみます。 あともうひとつ。Function, Functor, Applicative, Monadと来てるが、 これで一揃い出尽くしているの?
|
- 関数型プログラミング言語Haskell Part27_©2ch.net
350 :デフォルトの名無しさん[sage]:2015/01/29(木) 23:25:29.46 ID:TKGinLzw - > なぜ、
> <*> [f g h] [1 2 3] = [f(1) g(2) h(3)] > になるように定義されていないの? こう定義すると、2つの入力の要素数が等しくないといけないという 窮屈な制約がつくのが致命的ということはないの?
|