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

マインスイーパーのソルバーを作った

昨日今日の土日にオープンキャンパスがあり、研究室紹介で利用するためにマインスイーパーのソルバーを作ったのでGitHubにあげました。 C#/WPF(with Livet)で作成しました。 オープンキャンパスという締め切りに間に合わせるためにコードが色々と酷いことに…

Try SLC を公開しました

SLCをWebブラウザ上で実行できるTry SLC(Symmetric Lambda Calculus)を公開しました。 SLCって? SLCとはSymmetric Lambda Calculusの略で、日本語だと対称ラムダ計算と呼ばれる、ラムダ計算の一種です。 その名の通り対称性が特徴なラムダ計算です。 ここで…

Land of Lisp 7章メモ

7章メモ ドットリスト 終端がnilでないコンスセルの連なり。終端がnilで終わるのがリストなので真のリストではない。 対 対はコンスセルをそのまま使うことで表現できる。 循環リスト 終端がなく循環した(自己参照をもった)リスト。 REPLが正しく循環リスト…

Land of Lisp 6.5章メモ

6.5章メモ lambda らむだ!らむだ!

Land of Lisp 6章メモ

6章メモ 5章のゲームにコマンドラインインターフェースを追加する。 コンソールへの表示 print : 表示位置が行頭でなければ改行して値を出力して空白を出力 prin1 : 単に表示 入出力いろいろ printとreadはLispの値をそのまま入出力できる。 すなわち文字列…

Land of Lisp 5章メモ

5章メモ テキストゲームを作る。 世界は場所をノード、その間の移動手段をエッジとした有向グラフとして捉えられる。 ゲームでは以下の操作を行える。 周囲を見る 移動する オブジェクトを拾う オブジェクトを使う 文字列とシンボルのリスト ここでは文字列…

Land of Lisp 4章メモ

4章メモ 真偽値 Common Lispでは空リストを偽、それ以外を真として扱う。 また、空のフォームが空リストに評価され、nilは値nilをもつ定数で、値nilは空リストに等しいため、'() () 'nil nilはすべて空リストとなり偽。 条件分岐 if,when,unless, cond,case…

Land of Lisp 3章メモ

3章メモ Lispのシンタックス LispをLispたらしめるっぽいとこ。 Lispのコードは全部リスト。 クオート Lispのコードは第一要素を関数名として評価される。(特殊形式除く) 評価を抑制するときはクオートする。 リストとコンスセル リスト(a b c)はnilで終わる…

Land of Lisp 2章メモ

2章メモ Land of Lisp 2章を読んでのメモ。 defparameter/defvar グローバル変数定義。 defparameterだと同名の変数を定義した時に上書きされる。 defvarだとされない。 defun deffunではない。 ash arithmetic shift(算術シフト)の略。 lsh(logical shift)…