F#

F#というか.NETにJavaのAtomicBooleanがなかったので実装してみた

タイトルの通り、.NETにはJavaのAtomicBoolean(CAS操作のできるBoolean)が存在しないので、適当に実装してみた。スレッドセーフを保障しつつ、一回だけ処理を走らせたい場合なんかに使うと思う。 実装例 ここの例はF#だけど、Interlockedを使ってるだけな…

F#でUnitTest

F#

やりたいこと Visual Studio 2012に統合された形でF#のUnitTestを書きたい/動かしたい。 xUnit.netを使う場合 特にテスティングフレームワークには拘りはないのだけど、なんとなくNUnitよりもxUnit.netの方が好きなので、動くようにしてみた。FsUnitというや…

デバッグ中にAsync.FromBeginEnd内部でExceptionが発生すると、デバッガが止まってしまって邪魔くさい

F#

F#でちょっと非同期Socketのコードを書いてるんですが、 type Socket with member this.AsyncReceive(bytes, flags) = Async.FromBeginEnd(bytes, flags, (fun (_, _, callback, state) -> this.BeginReceive(bytes, 0, bytes.Length, flags, callback, stat…

F# の非同期ワークフローがよくわかってない

F#

F# 3.0で以下のコードが期待通りに動かない理由がよくわかってない。Ctrl+Cを押してもプログラムが終了してくれない。Wait()したままになる。 open System [<EntryPoint>] let main argv = Async.StartAsTask(Async.AwaitEvent(Console.CancelKeyPress)).Wait() printfn </entrypoint>…

VisualStudio 2010 SP1 で F# Silverlight 4/5プロジェクトをビルドしようとするとエラー

VisualStudio 2010 SP1 で F# Silverlight 4/5プロジェクトをビルドしようとすると、こんな感じのエラーが出る。 F# runtime for Silverlight version v4.0 is not installed. Please go to http://go.microsoft.com/fwlink/?LinkId=177463 to download and …