言語ゲーム

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

Twitter: @propella

2007-08-01から1ヶ月間の記事一覧

継続とは何か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 分クォーター二枚を駐車場のマシンに入れてブツクサ独り言を言いながら海の見える公園を行ったり来たりする。あまりにも考えすぎ…

くっついた!

うわー! 今まで考えていた全ての問題がくっついた! 感じがした! ぬか喜びにならないようにゆっくり考えないといけないけど。 色々関係ないことに手を出していたように見えて。 一つの問題の色々な側面だった!とりあえずメモ。「言語ゲーム」をやっていた…

データフロー式 etoys 言語の作成計画

アイデアというのは構想の段階で何か言っても、普通返って来るのは否定的な意見ばかりで、ある程度形が見えるまで分かってくれる人はいない。特に私のような小心者はそれでやる気を失う事が多いので本当の事は黙ってる事が多いのだが諸般の事情で形を変えて…

非正格なスタック言語

スタック言語の上に最もプリミティブな Arrow が作れないだろうかと考えていて非正格なスタック言語が良いのではと思いついた。たとえば Haskell なんかだと、引数は必要になるまで実行されないので遅延評価を表現する為の特別な記法が無い。例えば Joy だと…

[haskell] How To Arrow3 選択

import Control.Arrow newtype SF a b = SF {runSF ::[a]->[b]} instance Arrow SF where arr f = SF (map f) SF f >>> SF g = SF (f >>> g) first (SF f) = SF (unzip >>> first f >>> uncurry zip) instance ArrowChoice SF where left (SF f) = SF(\xs ->…

[haskell] How To Arrow2 並置

import Control.Arrow newtype SF a b = SF {runSF ::[a]->[b]} instance Arrow SF where arr f = SF (map f) SF f >>> SF g = SF (f >>> g) first (SF f) = SF (unzip >>> first f >>> uncurry zip) -- ではややこしい話の前に、Arrow の利点を強調する例。…

[haskell] How To Arrow 基本

http://d.hatena.ne.jp/propella/20070807/p1 1:基本 http://d.hatena.ne.jp/propella/20070807/p2 2:並置 http://d.hatena.ne.jp/propella/20070808/p1 3:選択 -- なんか知らんうちに Arrow 流行ってるようなので試してみる。 -- http://www.cs.chalmers.se…

自分用メモ: プログラムのシルエット

もともとこの日記は自分用のメモで、決して人に読ませるブログなのでは無くて、ばれるまでは匿名を守ってた程ですけど。特に今日のは他の人には全く意味を成さないので自分用メモとわざわざ書きます。だから面白く無いなんて言わないで。SqueakFest で感じた…

SqueakFest 2007

今年も夏の恒例 SqueakFest 2007 がシカゴにて開催されました。これは技術的なカンファレンスというよりも、教室での授業での実践について議論するようなより実際的な会です。世界中の先生方が集まってスクイークをどういう風に使っているか話し合うという物…