ようこそ。睡眠不足なプログラマのチラ裏です。

コンピューテーション式

ステップアップでわかるコンピュテーション式。TryWith や TryFinally などの実装にぜひ活用したい Delayと Run

全国1億2千万人の F# ファンの皆様いかがお過ごしでしょうか。理解できるわけもないとわかっていながらも調子に乗って「型システム入門 プログラミング言語と型の理論」を買ってしまった系の痛いおじさんです。10年後、20年後にわかることができてたら…

F#3.0で加速する言語指向プログラミング(LOP)。コンピューテーション式はもはやモナドだけのための構文ではない!!!

マーチン・ファウラー先生の黒いDSL本(翻訳版)が5月2日に発売されました。遅ればせながら私も最近購入して熟読しているところです。 この本が示すDSLの種類や内容は、あくまでもオブジェクト指向というコンテキストにおいてのものであり、関数型言語によるDS…

F#で簡素なモゲマスコンプガチャシミュレータ

椎名林檎「自由へ道連れ」をヘビロテしすぎて脳内無限ループしている今日この頃ですが、皆様いかがお過ごしでしょうか。 時事ネタとしては旬を逃した感じですが、簡素なコンプガチャシミュレータをF#で書いてみました。 とは言っても、この記事で伝えたいこ…

ふと、Seq.tryFindの変な(誰得な)使い方を思いついた。F#でbreakとcontinue再び。

以前、「F#で楽々breakとcontinue。継続モナドまじパネぇっす!」を書きました。 確かに楽々ではあるんですが、継続モナドとかマジで難しいですよ。 しかも、Visual Studioでデバッグとかまともにできないですし...(´・ω・`)ショボーンな気持ちになっちゃいま…

快刀乱麻を断つモナド - F#とIOモナドとコンピューテーション式の奥義と

,. -‐'''''""¨¨¨ヽ (.___,,,... -ァァフ| あ…ありのまま 今 起こった事を話すぜ! |i i| }! }} //| |l、{ j} /,,ィ//| 『F#でIOモナドっぽい何かを作ろうとしていたら、 i|:!ヾ、_ノ/ u {:}//ヘ いつのまにか、全然別モノのLazyモナドをつくっていた。』 |リ u'…

F#で楽々breakとcontinue。継続モナドまじパネぇっす!

id:einblickerさんが、「F#で継続モナド - einblickerの日記」というステキな記事を書いてくださいました。グッジョブすぎる! 以前、F#で継続渡し形式(CPS)変換を抽象的に考えてみたら、それってつまりHaskellの継続モナドみたいなものでした。ということで…

Observableコンピューテーション式はモナド則を満たしているか否か。

前回のエントリ「F#でRxる。よく訓練されたF#erはコンピューテーション式をつくる。」で紹介いたしました、 Observableコンピューテーション式について補足します。モナド則を満たしているか否かについてです。 Haskellにおいて、モナドがモナド則を満たして…

F#でRxる。よく訓練されたF#erはコンピューテーション式をつくる。

いにしえからの言い伝えによると、よく訓練されたF#erはコンピューテーション式をつくるそうです。 Select Many: Reactive Extensions’ Mother Of All Operators (Chaining). お、SelectManyですね。 なるほどなるほど。計算を繋ぐもの。モナドですか。そこ…