関数型プログラミング ..
13:11
02/02/18 16:40
いやー。
こんな関数がほしいのよ。(Haskell消防なので笑わないでね)
readWithTimeOut :: Socket -> Int -> Maybe String
readWithTimeOut s ms = timer ms Nothing || read s
関数timer::Int->a->aは指定された時間簡約が停止する。
その後2番目の引数を返す
関数read::Socket->StringはTCP/IPにデータが来るまで簡約が停止する。
ソケットからByte列をStringとして返す。
演算子||は、競争書き込み。全ての最初に帰ってきた値を値として返す。
他の簡約は、もちろん正常に停止、消去(GC?)される。
もちろん a = b || c || dと複数書ける。
(競争に負けた簡約は、どうしたらいいんだろう?うーん、キャッシュしておく?)
ってParallell G-mahineを実装しているHaskellでも可かな?
このようなことのできる処理系あったら誰か教えて。お願いします。
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5328日前に更新/199 KB
担当:undef