【.NET】F#について語れ【OCAML】
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
150:名無しさん♯ 07/11/20 20:14:12 あ、型コンになってなかった。(´・ω・`) data Async a = Async ((a -> (), Exception -> ()) -> ()) 151:名無しさん♯ 07/11/21 08:05:42 Asyncを単純化するとこんな感じなのかな?( ´・ω・) #light type Async<'a> = Async of (('a -> unit) * (exn -> unit) -> unit) with static member Run (Async x) = x let unit a = Async (fun (cont, _) -> cont a) let bind m k = Async (fun (cont, econt) -> let cnext = fun a -> try Async.Run (k a) (cont, econt) with exn -> econt exn Async.Run m (cnext, econt)) で、実際にはここでのunit→resultPrim, bind→bindAsyncPrim相当でしかなくて、 これにキャンセルサポート(AsyncGroup)を追加してはじめてresultAsync, bindAsync相当になる、と。 モナドの定義自体にはスレッド云々は関係なくて、モナドを起動する側(Run, Spawn)の方で スレッドに結びつけてる、と。 これをC#で表現するのはめんどいのう。(´・ω・`)
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5380日前に更新/121 KB
担当:undef