Just $ A sandbox

プログラミングと計算機科学とかわいさ

2015-07-01から1ヶ月間の記事一覧

MonadPlusとNearSemiringで反例探し

"MonadPlusは単なる自己関手の圏における近半環だよ。何か問題でも" の理解を試みる - scalaとか・・・d.hatena.ne.jp 上の記事を読んでちょっと考えたこととかをまとめる. NearSemiringとは和についてモノイド, 積について半群で, 0が左吸収元で…

Haskellで大富豪を作ろう (5)勝敗の判定をしよう

前回までの記事 Haskellで大富豪を作ろう (1)トランプを用意しカードを配ろう - Just $ A sandbox Haskellで大富豪を作ろう (2)ターンを進めよう - Just $ A sandbox Haskellで大富豪を作ろう (3)カードの組を判定しよう - Just $ A sandbox Haskellで大富豪…

Haskellで大富豪を作ろう (4)基本のルールと場の流れを作ろう

前回までの記事 Haskellで大富豪を作ろう (1)トランプを用意しカードを配ろう - Just $ A sandbox Haskellで大富豪を作ろう (2)ターンを進めよう - Just $ A sandbox Haskellで大富豪を作ろう (3)カードの組を判定しよう - Just $ A sandbox 第四回 基本のル…

Haskellで大富豪を作ろう (2)ターンを進めよう

前回までの記事 Haskellで大富豪を作ろう (1)トランプを用意しカードを配ろう - Just $ A sandbox 第ニ回 ターンを進めよう 実際にゲームとして動かすために, まずはいわゆるメインループにあたる部分を作ろう. ゲームに必要な変数をGame型として定義してお…

Haskellで大富豪を作ろう (1)トランプを用意しカードを配ろう

まえがき Haskellでなんか動くものを作ろうと思った. 規模と知名度等を考えて大富豪あたりが妥当なところかと思ったので, 今回はCUIの大富豪を作ろうということにした*1. コード自体は完成しているので, 何回かに記事を分けて説明をつけて投稿していくつもり…

Haskellで大富豪を作ろう (3)カードの組を判定しよう

前回までの記事 Haskellで大富豪を作ろう (1)トランプを用意しカードを配ろう - Just $ A sandbox Haskellで大富豪を作ろう (2)ターンを進めよう - Just $ A sandbox 第三回 カードの組を判定しよう 前回はカードを捨てられるようになったので, 次は同じ数字…

Lens from Scratch

久しぶりのLensの記事です. 5億回は繰り返されてきたであろうLens再実装を通して, Lens, Getter, Setter, Iso, Equality, Traversal, Prism, Foldの仕組みを理解するのが目的です. 亜Lens family Getter Getterは基本的にはConstをかぶせる操作とそれを剥が…

無限ループによる証明

Software FoundationsのIMPあたりをやってて疑問が湧いた. w = while True do Skip endが停止しないことを示したい. つまり, $\langle w, s \rangle \to s' \Rightarrow False$ を示したい. ($s, s' : \mathbb{Z} \to \mathbb{Z}$ は変数の値を保持する環境)…

de Bruijn Indexとβ変換

$ KMN \equiv (\lambda xy. x)MN \longrightarrow_{\beta} M $を示したいとする. α変換 $y \notin \text{FV}(M)$ならば, $ (\lambda xy. x)MN \to (\lambda y. M) N \to M[y:=N] \equiv M $となる. 問題は$y \notin \text{FV}(M)$ならば$ M[y:=N] \equiv M $…