言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

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

痛みで眠れない夜。

ここ数日下痢気味で、それはいつもの事だけど、昨晩は少し症状が変だったので記録する。どう変かというと、おへその辺りがむずむずと痛い感じでしかもおしっこしたいわけじゃ無いのにおしっこに行きたい感じもあるのだ。小さな頃からたまーにこういう感じに…

俺様言語 Lazy を作る。その4。

http://languagegame.org/pub/lazy/Lazy.html プログラムは同時にリストではない。 さて、前回の気付いた重要な点は、lisp の伝統的なリストの表現方法 '(this is a list) => (this is a list) がおかしいという事でした。数字の 7 を評価すれば 7 が返るよ…

俺様言語 Lazy を作る。その3。

http://languagegame.org/pub/lazy/Lazy.html rewrite と compose : 項の書き換えと関数合成。 いよいよ山場。 遅延評価を実装する。遅延評価が完成した暁には次のような式が評価出来るようになる。 > ((lambda (ones) (take 5 ones)) (cons 1 ones)) (1 1 1…

俺様言語 Lazy を作る。その2。

ちまたでは言語開発合宿というのをやってたそうです。http://wiki.fdiary.net/ldev/ 無茶苦茶楽しそう!この日記も思いっきり影響されてますが、ヘタレなのでこそこそ隠れてマイペースに行きます。http://languagegame.org/pub/lazy/Lazy.html factorial 先…

俺様言語 Lazy を作る。

(注意: この俺様言語の日記はなにぶん学習の過程ですので、数多くの嘘が混ざっている場合があります。信用しないで下さい)http://languagegame.org/pub/lazy/Lazy.htmlふとプログラミング言語を一つ作ってみる事にした。そうすると俺に足りないものが見つか…

gettext その2

http://d.hatena.ne.jp/propella/20061102/p1 に書いた物と重複しますが、管理上のメモです。まずサンプルの po ファイル ja.po を作ります。 msgid "" msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Enc…

Common lisp で遊ぶ

なぜかいつも世間から半周以上遅れて興味が沸いてくるのだけど、突然 Common lisp をやってみた。処理系は沢山あって迷うがとりあえず cygwin でインストールが簡単だった clisp http://clisp.cons.org/ マークがユダヤ教の蝋燭立てみたいなのはカッコの対応…

運転免許のペーパーテストを受ける

重い腰を上げて運転免許を取りに行ってきました。 大島さんから運転ハンドブックを頂く。交通ルールを勉強。 DMV にある模擬試験を試す。 DMV のウェブサイト http://www.dmv.ca.gov/ で予約。 ちょっと早めに行って、DL 44 フォームを記入する DL 44 を持ち…

アメリカで日本のロボを観る。

ロサンゼルス・コンベンションセンターで開かれている WIRED NEXT FEST という展示会を観てきました。メディアアートのような物から真面目な発明まで、世界各国から珍しい物が沢山あつまって居ました。特に私が面白い!と思ったのは、 Brainball : 念力でボ…

Cat 言語 in Javascript

この週末は Cat 言語の Javascript 版を作っていました。作者さんによるオリジナル版が壊れていたので直しただけですが、Cat と Joy の違いがよく分かりました。まだ関数定義が出来ないので、はっきり言って面白い事は何も出来ないけど、今日の成果をとりあ…

Lucid 言語

Lucid 言語というのを教えてもらいました。Lucid も 70 年代に作られた古い言語で、データフロー言語のハシリとされます。残念ながら私のパソコンで動く処理系は無いみたいだけど、Haskell に翻訳しながら試してみます。まず最初の例は、数列の合計を求めま…

スタック言語 Joy と、Arrow と圏論の関係についての素描

大島さんに、Arrow でスタック言語が書けたところで Arrow がスタック言語であるとは言えないのでは無いかとの指摘を受けたので考えを書き散らかす。ここで、スタック言語とは、 構成要素が全てコンビネータ(外部変数を含まない関数)である。 例えば Haskell…

Haskell でスタック言語を作る

Arrow はスタック言語だと口で言うだけじゃ信用してもらえないと思うので軽く作ってみる。もしかして、Haskell で Joy (風言語)というのはとても難しいのではと思っていた。何故難しいかというと、スタックというのはリストなのだけど、リストというのは普通…

ArrowLoop

さて、気分を変えて ArrowLoop をやります。論文に書いてあるloop f b = let (c,d) = f (b,d) in cの意味が全く分からなくて Arrow の勉強が一ヶ月近く停滞していたのですが、id:MaD さんが素晴らしい解説 http://d.hatena.ne.jp/MaD/20070818 を書かれてい…

体調

キャンプから帰ったあと、今週はずっと調子が悪かった。もしかして『プログラムのシルエット』のデモがイマイチだったので落ち込んでいるのかと思ったが、今強烈に頭が痛くなり、体調が悪いのだと分かった。熱は無いので頭はちゃんと働いていると思うが、胃…

アメリカで散髪をする。

シャンプー無し。髪はドライヤーで吹き飛ばす。 顔そり無し。 チップが要るらしい。 散髪屋に行った。普通だった。アメリカでの散髪についてはウェブで散々恐ろしい事が書いてあるが、結論を言うとそこまで酷い事は無かった。参考までに違いを書いた。料金は…

継続渡し形式挿話。prolog と haskell でパターンマッチング

prolog と haskell の関係について質問がありましたが、そんな事私に分かるわけ無いです。しかし、両者のコードを愛でてみるのは楽しそうなのでやってみました。prolog で CPS で書くというのがどういう事か分からなかったので、普通に末尾回帰にした版を並…

継続とは何か2 (http://d.hatena.ne.jp/propella/20070830/p1 の続き)

shiro さんに頂いたソースコードを私なりにコメント ;; まず、c には hop を実行する前の継続が入ります。 (define c (begin (print "hip") (let ((x (call/cc (lambda (y) y)))) (print "hop") x))) hip hop c gosh> c ;; よしよし、ちゃんと入っているよう…

継続渡し形式(CPS)変換とは何か?

継続とは何かが分かったので、継続渡し形式とは何かについて調べてみた。http://karetta.jp/book-node/kahua-seminar2/000511 を読むと、CPS に call/cc は必要無い事が分かった。がっくり。と言う事で、このページの例を Haskell と Squeak に写経しながら…

継続とは何か?

私の苦手な単語である継続とやらについて調べてみた。定義: 『プログラミング言語 SCHEME』のおまけの R5RS 6.4. 制御機能より抜粋 procedure: (call-with-current-continuation proc) proc には1引数を受け取るプロシージャを指定する。プロシージャ call-w…

[まめちしき] 英語でルネサンスは「レナゾン」と聞こえる。

プログラムのシルエット3

http://d.hatena.ne.jp/propella/20070825/p1 の続きです。キャンプで初めて見せたデータフロー言語のプレゼン。肝心なスタック言語の説明が上手く行かなくて失敗だ!とおもっていたけど、ジョン・マロニーさんが面白かったと言ってくれたので凄く嬉しかった…

skirball

今日はキャンプ疲れで一日ぼーっとしていた。何もやる気が起きないので、とりあえずキムさんに薦められていた skirball という博物館にある、面白彫刻でも見に行った。面白彫刻は子度向けすぎてイマイチだったが、併設のユダヤ美術館(というか民俗博物館のよ…

プログラムのシルエット2

http://d.hatena.ne.jp/propella/20070806/p1 の続き。プレゼン版では今からプログラムのシルエットについて話します。これは何でしょう。形のよく分かる影と分かりにくい影があります。これなんか本体より影の方が分かりやすい。プログラムにも影があります…

非正格なスタック言語2

http://d.hatena.ne.jp/propella/20070808/p2 に書いたアイデアの続きです。非正格なスタック言語というのは半分冗談ですが、データフロー記述言語としてのスタック言語を想定すると冗談じゃ無くなってきました。データフロー記述言語というのはどういう意味…

自然変換に挑戦

(下に書いてあることは嘘なので気を付けてください。分かったら書き直します)http://d.hatena.ne.jp/propella/20070813/p1 でいかにも自然変換について分かったような事を書いてしまったけど、あとで圏論の基礎の説明を読んでもさっぱり分かりませんでした。…

カリフォルニア生活二ヶ月目

こんにちは。ロサンゼルスのウエストウッドに住み始めて二ヶ月がたちました。毎日脳内では色々な事が繰り広げられているんだけど傍目でみるときっと滅茶苦茶味気ない暮らしをしていると思います。基本的にはオフィスとアパートの往復で、料理も最初の頃だけ…

Joy から S 式を生成する。

本当にどうでも良い話だが、かっこいいトレースが出来たのでコピペ。Joy のようですでに Joy で無くなりつつある自作言語の意味ツリーを S 式のような記法で出力してゆく様子。y:= はセッター、:y はゲッターでこの部分で Smalltalk と通信します。ツリーの…

[haskell] 色々な 3 + 4 の書き方

import Control.Arrow -- 普通に functionExp = 3 + 4 -- do 記法と IO モナドを使う。わざと同じ変数名を使ってみた。 monadExp1 = do x <- return 3 y <- return 4 x <- return (x + y) print x -- 普通のモナド記法。Joy 記法 (3 4 +) に似ている! monad…

影と自然変換

いつもながらさくっとメモる。今日もスタック言語からツリーに変換する方法について考えていた。最近は浜辺がお気に入りで、30 分クォーター二枚を駐車場のマシンに入れてブツクサ独り言を言いながら海の見える公園を行ったり来たりする。あまりにも考えすぎ…