サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Wikipedia
www.tom.sfc.keio.ac.jp
www.tom.sfc.keio.ac.jp/~sakai
λ. Alloyで知識論理を使って論理パズルを解く bonotakeさんの日記で時々取り上げられているAlloy、パズルを解くのに便利とのことなので、ちょっと週末に遊んでみた。 対象とするのは、以前にSPASSで知識の論理を使って論理パズルを解く?でも取りあげた「赤いぼうし」の問題で、これは以下のような問題。 AさんとBさんがいて、少なくとも一人は赤い帽子を被っていて、赤い帽子を被っていない人は白い帽子を被っている。ただし、二人とも他人の帽子の色は分かるが、自分の被っている帽子の色は分からない。そして、Aさんが「自分の帽子の色が分からない」と発言した。このとき、Bさんの被っている帽子の色は何か? そして、Bさんは自分の被っている帽子の色が分かるか? この前提となる状況をAlloyでは以下のようにモデル化することが出来る。 -- 世界 sig W { K_a: set W, -- 「Aさんが
日々の流転 トラックバックスパムを大量に喰らったので、トラックバックを一時的に無効にしています。 λ. A brainf*ck interpreter in Prolog ふと、現実逃避にPrologでBrainf*ckの簡単なインタプリタを書いてみた。 brainfuck(Src) :- bf(Prog, Src, []), !, seq(Prog, []*[0], _). bf([]) --> []. bf([X|Y]) --> bf1(X), {!}, bf(Y). bf(X) --> [_], bf(X). bf1('>') --> ">". bf1('<') --> "<". bf1('+') --> "+". bf1('-') --> "-". bf1('.') --> ".". bf1(',') --> ",". bf1(w(X)) --> "[", bf(X), "]".
日々の流転 トラックバックスパムを大量に喰らったので、トラックバックを一時的に無効にしています。 λ. Twitterにメールから投稿するスクリプト 最近Twitterを始めたyaizawaさんが「なんとたった27行」とか行数自慢(?)していたので、対抗して自分の使っている手抜きスクリプトも晒してみる(^^; require 'net/http' Net::HTTP.version_1_2 require 'uri' require 'tmail' require 'iconv' mail = TMail::Mail.parse(STDIN.read) status = mail.body status = Iconv.conv('utf-8', mail.charset, status) if mail.charset status.chomp! Net::HTTP.start('twi
Contacts E-mail sakai ⊗ tom.sfc.keio.ac.jp masahiro.sakai ⊗ gmail.com PGP Publc Key <URL:http://www.tom.sfc.keio.ac.jp/~sakai/public_key.asc> Fingerprint 5A8B 7A34 EA3E 7E28 DDBD 0263 2909 D7C4 AC98 6BB0 My Works Softwares Talks Writings
λ. newtypeはHaskellの仕様に不要では? 向井さんのdataとnewtypeのちがいのわかりやすい例というエントリへの便乗なのだけど、newtypeはHaskellの仕様に不要だったのではないかと私は思っている。 向井さんの例でいうと「data T2 = T2 !Int」と「newtype T3 = T3 Int」の表す領域は全く同じである。違うのは「メモリ上のデータの表現の効率」と「パターンマッチの意味」だけ。しかし、この場合にはメモリ上のデータ表現はコンパイラによる最適化が可能であろうし、そのような最適化はプログラマにとって十分透過的*1だろうから、プログラマがメモリ上の表現を明示する意味はあまり無いはず。また、newtypeで宣言した場合のパターンマッチの意味については、dataで宣言した場合でも遅延パターンを用いれば実現できる。 仮にHaskellの仕様にnewtyp
日々の流転 トラックバックスパムを大量に喰らったので、トラックバックを一時的に無効にしています。 λ. iconv-io 0.0.4 readpartialキター ([ruby-dev:24058]) ってことで、iconv-ioをreadpartialを使うようにする。 知らない人のために紹介すると、iconv-io はIOもどきの1つで、他のIOっぽいオブジェクトをラップし、エンコーディングを変換しながら読み書きするためのものです。例えば、以下はSTDINをラップしてshift_jisからutf-8にエンコーディングを変換しながら読む例です。 io = Iconv::Reader.new(STDIN, "shift_jis", "utf-8") io.each_line{|l| ... } λ. "Purely Functional Data Structures", Chris Ok
λ. PPL Summer School 2006 今日は PPL Summer School に行ってくる。 色々な人に会えるであろうから楽しみ。 行ってきた。昨日のSLACSはほとんど宇宙語の世界だったが、今日はこころある人間の言語のようで、気楽に聴いていられた。色々な人にお会いできたが、あまり話すことが出来ず残念だった。 以下色々書くが、これらは講演内容をまとめたわけではなく、私の単なるメモであり、偏っており間違いを含む可能性も高いのでご注意を。まあ、真に受ける人はいないと思うが。 他の方の感想など λ. 圏論の諸相 講師 木下 佳樹 先生(産業技術総合研究所) 概要 圏論は、圏の構造についての理論ではあるが、その利用者にとっては、ものの見方を与え、いい定義を探すための道具であるという面がある。定理の証明よりいい定義を見つけるのが難しい、というのは、圏論や型理論に共通の特徴で、同じ数
CPLは萩野先生の作ったプログラミング言語で、 圏論に基づいたデータ型の定義と計算モデルを持ちます。 詳しくは<URL:http://www.tom.sfc.keio.ac.jp/~hagino/index.html.en>から入手できる論文を参照してください。 CPL is a functional programming language based on category theory. Data types are declared in a categorical manner by adjunctions. Data types that can be handled include the terminal object, the initial object, the binary product functor, the binary coproduct functor,
原文: Thermodynamics and Garbage Collection. ACM Sigplan Notices 29, 4 (Apr 1994), 58–63. Henry G. Baker Nimble Computer Corporation 16231 Meadow Ridge Way, Encino, CA 91436 (818) 986–1436 (818) 986–1360 (FAX) Copyright (c) 1993 by Nimble Computer Corporation 日本語訳: 酒井 政裕 私たちは統計力学の原理とそのストレージ管理の問題への適用について議論します。 また、私たちは 情報, 状態, 可逆, 保守的 といった用語の不正確な用法による問題について指摘します。 A. はじめに 計算機科学者は抽象統計熱力学についての知識を持っている
λ. めがまり 良く出来てるなぁ。懐かしい。とりあえず、咲夜・うどんげ・チルノ・霊夢をこの順で倒した。キャラ二人分のライフゲージがあるせいか、ボス戦はそこまで辛くない。といっても、元のロックマン2をもう覚えてないんだけどね。技は、咲夜とチルノの技は魔理沙に、うどんげと霊夢の技はアリスに持たせた。そういえば、ロックマンのボスといえば弱点があるのがお約束のはずだけど、まだ弱点には出会ってない気がする。はて? パスワードのメモ ● ●● ● ● ● ● ●●●● λ. 余代数と余帰納法 2006-06-24で「coalgebra等の簡単な解説は近いうちに書こうと思います」と書いたが、このままだといつになっても書けそうにないので、とりあえず書き始めてみる。ちょっとずつ書き足していく予定。 代数と余代数 余代数は代数の双対……といっても何が何だかわかんないと思うので、まずは代数を考
λ. javascriptでRDFをパース やっぱし、やっている人はいるもんだな。 何かに使えそうな気がするのでメモ。 Simple javascript RDF Parser and query thingy Javascript-RDF Testbed λ. (forall x. ((x->r)->r)->x) -> Either a (a->r) 今日ちょっと混乱したことを元にクイズにしてみた。多分その手の人にはピンとくる問題。表記はHaskellのものを使ったが、実際には多相ラムダ計算の問題と考えていい。 問題 「(forall x. ((x->r)->r)->x) -> Either a (a->r)」という型を持つ関数を定義せよ。(ただし⊥が途中で現れたりする定義は禁止) この関数は何を表しているのだろうか? 解答編 問題の関数はこんな感じで定義できる。 notNotEM ::
日々の流転 トラックバックスパムを大量に喰らったので、トラックバックを一時的に無効にしています。 λ. Composable memory transactions, Tim Harris, Simon Marlow, Simon Peyton Jones, and Maurice Herlihy. Submitted to PPoPP 2005. を読んだ。 現在広く使われている並列プログラミングのモデルはcompositionalityに問題がある。例えばロックは、ロックを使った複数のシステムは組み合わせてより大きなシステムを作るのは難しい(ロックの順番如何でデッドロックに陥る)。例えばUnixのselect(2)は、複数のファイルデスクリプタを同時に待つことが出来るが、複数のselect(2)を使って書かれた手続き(が値を返すの)を同時に待つことは出来ない。etc。それに対して、ST
Generated by Hiki 0.8.7 (2008-02-08). Powered by Ruby 1.8.5 (2006-08-25). Founded by SAKAI Masahiro.
λ. ザリスキー位相 先日、プログラミング言語の方のschemeの話をしていたら、schemeつながりで代数幾何のschemeの話になり、そこからザリスキー位相の話が出てきた。 そういえば、ザリスキー位相というか Zariski spectrum の話は Topology via Logic の第12章 Spectra of rings でちょっと読んだことがあるな。 この章はおまけ的な章だったので、あまりまじめに読んではいなかったけど、Zariski spectrum って代数幾何で使うような概念だったのか。 代数幾何って魑魅魍魎の世界だと思い込んでいたので、そんなのが自分の知識の中に迷い込んでいたことに、ちょっとビックリだ。 ただ、Topology via Logic ではスペクトルは束のような代数に対して定義されるものだった。なので、環の Zariski spectrum も環
このページを最初にブックマークしてみませんか?
『www.tom.sfc.keio.ac.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く