http://fsharp.org/guides/web/ に載ってる中でちょっと気になったやつをメモ。
Suave.IOはノンブロッキングでクロスプラットフォーム。ほうほう。結構作りこまれてる様子。 http://suave.io/
type SuaveTask<'a> = Async<'a option> type WebPart = HttpContext -> SuaveTask<HttpContext>
open Suave open Suave.Http open Suave.Http.Applicatives open Suave.Http.Successful open Suave.Web let app = choose [ GET >>= choose [ path "/hello" >>= OK "Hello GET" path "/goodbye" >>= OK "Good bye GET" ] POST >>= choose [ path "/hello" >>= OK "Hello POST" path "/goodbye" >>= OK "Good bye POST" ] ] startWebServer defaultConfig app
Freyaはステートマシン。シンプルっぽい。 https://github.com/freya-fs/freya
type Freya<'a> = FreyaState -> Async<'a * FreyaState>
let double x = freya { return x * 2 }