FSharp.Control.ImperativeAsyncの紹介

この記事はF# Advent Calendar 2016の8日目のものです。 大遅刻しました…orz

qiita.com

今回はFsharp Bootcamp Tokyo 2016 with Tomas Petricekで議論した結果生まれたライブラリの紹介です。

https://github.com/pocketberserker/FSharp.Control.ImperativeAsync

Asyncでもreturnで大域脱出できるようになるよ、という代物です。

このライブラリではImperativeAsyncという型を用意していますが、ユーザがこの型を明示的に生成することはできません。 あくまで制御用の型です。 中身はAsync<'T option>をラップしただけのものですが、別名をつけておいた方がわかりやすいのでこうしました。

とまぁ、こんな感じで皆さんも気軽にコンピュテーション式を提供するだけのライブラリを作ってみてはいかがでしょうか?