2014-01-01から1年間の記事一覧

継続渡しスタイルを使ってListコンピュテーション式を実装する

F#

引き続き、コンピュテーション式を継続渡しスタイルで実装する編です。 今回は、 コンピュテーション式におけるreturnとyield - ぐるぐる~ で定義されているListコンピュテーション式を、継続渡しスタイルで実装してみましょう。 なお、Using や Whileなど…

継続を使ってOptionコンピュテーション式を実装する

前提 下記記事を読んでいることが前提となります。 コンピュテーション式の実装にStateを用いる - pocketberserkerの爆走 注意事項 継続に関する解説はしません この記事のコードが理解できなくてもコンピュテーション式は使うことができます 継続、しません…

Listコンピュテーション式にyield breakもどきを作れないかあがいてみた

F#

コンピュテーション式におけるreturnとyieldにも書かれている通り、カスタムオペレーターで yield break を実装することはできません。では、型の力をつかってどうにかできないか、とあがいてみました。 Builder の定義 前述の記事で掲載されている ListBuil…

コンピュテーション式のSourceメソッドを試す

F#

前提 以下のエントリを読んでいることが推奨されます。 詳説コンピュテーション式 注意 src(e) は、ビルダーがSourceメソッドを持っており、 かつ最も内側のForEachがユーザによるもの(変換により生成されたコードではなく、ユーザが書いたコードであるとい…

コンピュテーション式の Quote メソッドで変換結果を見る

F#

前提 以下のエントリを読んでいることが前提となります。 詳説コンピュテーション式 また、F# のコードクォートに関する知識を持っていると、理解しやすいと思います。 今回のお話 QuoteメソッドはExprを取るRunとセットで拡張すればいいって話をお昼に @poc…

コンピュテーション式の実装にStateを用いる

F#

この記事は、以下の素敵記事にかなり依存しているので、先に下記記事を読んでください。 詳説コンピュテーション式 本記事は上記記事内の whileを実用するためのCombine において、 ちなみに、simple を関数にしなくても済む方法があります。 それを実装した…

FSharp.Core.Printf モジュールについてのメモ

F#

メモ。そのうち記事に昇格するかも。間違っているかもしれないので、質問疑問指摘その他お待ちしております! msdn Core.Printf モジュール (F#)読みにくいので英語のほう読んだほうがいいかもしれない。 printf, printfn System.Console.Out に書き込む。n …