- 関数型プログラミング言語Haskell Part29 [転載禁止]©2ch.net
644 :デフォルトの名無しさん[sage]:2015/10/31(土) 13:00:33.74 ID:VBW/ZV1E - >>641
それはmasterが局所的な量化になってるんじゃないの? ChatHandlerの型にはmasterがどういう型かが現れてないでしょ
|
- 関数型プログラミング言語Haskell Part29 [転載禁止]©2ch.net
645 :デフォルトの名無しさん[sage]:2015/10/31(土) 13:04:49.04 ID:VBW/ZV1E - >>643
newtype MyMonad a = MyMonad { runMyMonad :: SomeMonad SomeType a } deriving (Functor, Applicative, Monad) とかすれば?
|
- 関数型プログラミング言語Haskell Part29 [転載禁止]©2ch.net
648 :デフォルトの名無しさん[sage]:2015/10/31(土) 15:08:37.45 ID:VBW/ZV1E - >>647
んー、確かめたら局所量化じゃなさそうだね。 = の右に左に出てこない型変数をforallなしで書くなってことなんだろうけど でもこれデータ型宣言じゃなくて型シノニムだもんね。
|
- 関数型プログラミング言語Haskell Part29 [転載禁止]©2ch.net
649 :デフォルトの名無しさん[sage]:2015/10/31(土) 20:13:28.97 ID:VBW/ZV1E - >>638
>ライブラリのサンプルでラムダ式の4重ネストとか見かけるけどそういう書き方って普通なの? >jsのコールバック地獄と何一つ変わらない気がするんだけど よくわからん。 ¥x1 x2 x3 -> zzzzzzz と書くのを律儀に ¥x1 -> ¥x2 -> ¥x3 -> zzzzzzzzz と書いてたって話じゃないのか? それなら単に複数引数のλを周りくどい表記で書いてるってだけだ。 或いはdo構文をdesugarした形で明示的に書いてるとかかな。 いずれにせよ関数定義内で局所的に変数を定義するのと同じなんで地獄とも思えない。
|