ないわー☆

http://d.hatena.ne.jp/itengineer/20080407♪なーいーわー わたしなーいーわー たとえあなたーが振り向いてくれなくってもー なーいーわー よんまるよん なーいーわー 他の誰かにあなたがのっとふぁうんどー

3/3 ひまなつり

http://d.hatena.ne.jp/cho45/20080303/1204475923 g86 のオフに参加した。けどなんかこう調子悪くてテンション低くて申し分けなかった。id:jdnaoya さんに関する考察を聴いた。 dropdbお姉さんを囲む会ですか?! 考察???あ、そういえばわたしもid:jknao…

とある人に教えてもらったのですけどhttp://www.lingr.com/room/1000speakers/archives/2008/02/10#msg-26074349 # はやみず # jknaoyaにあいたい>< # むしろjdnaoyaのほうがいいかも。 「むしろ」って。。。ひどい(´ノω;`)わたし知ってるんだからね!id:…

PHP

id:jknaoyaちゃんが「PHP はテンプレート言語なんですよね?」と日記に書いていたので私も勉強してみたよ!PHP: 今は番目<br/> DTML <dtml-in xs> 今は<dtml-var sequence-item>番目<br/> </dtml-in>Django {% for x in xs %} 今は{{ x }}番目<br/> {% endfor %}わかりやすいね!</br/></br/>

vコンビネータつくれるかな

なにが与えられても同じものが返らないと行けないって言う条件から、まずは与えられた引数が消えないと行けないよね。 消すには`kxに入れるしかない。で、消えた後のが元通りにならないと行けないから、 むずかしいね。

Unlambdaをうまくゲーム化できないかな

Iコンビネータは透明スライムで、食べたものの色に染まる。Vコンビネータは黒スライムでなにを食べても黒いまま。Kコンビネータは最初に食べたものを貯めていて、二つ目を食べると貯めていたのを吐き出して自分は死ぬ。Sコンビネータが難しい。子分を2人まで…

こんびねーたv

void: v(x) == v equivalent to ` ``s``s`kskk ``s``s`kskk今日はこれを理解したい。まずわかりやすい表記法を作る。 xを入れるとxが出てくる箱を[x -> x]と書くことにする。constant: ``kXY = Xこれは[x -> [y -> x]]。substitution: ```sXYZ = ``XZ`YZこれ…

JavaScriptにλを入れる

らむだかわいいよらむだ inc = λ({x: "x+1"}) inc(1) //=> 2 実装: function λ(obj){ for(arg in obj){ var f = eval( "function(" + arg + "){return " + obj[arg] + "}" ) } return f; } ごめんなさいごめんなさいごめんなさい。。。

だるい。。

今日は体調のよくない日

ひみつなのに!(><

となりの研究室のAちゃんがわたしのブログのことしゃべった!(><。 わかってくれてるとおもってたのに!!!(><。最近ようやくブログのおもしろさとか、ソースコードを書いて公開することのメリットとかわかってきたところなので、あんまりしりあいにブ…

JavaScriptでCPS

フィボナッチ関数をContinuation Passing Styleで書いてみました。 これで任意の時点で計算を止めたり後で再開したり、続けた後で戻ってみたりできるようになったはずです。 実行の処理は結局最後のwhileループが一歩ずつ進めているわけです。なんかGUIに似…

JavaでのUnlambda実装

Unlambda実装セットの中に入っていたのを読んでみる。600行程度の1ファイル。 // This is an implementation of the Unlambda programming language. // This one is in Java (the Master One is in Scheme). // $Id: unlambda.java,v 1.12 1999/11/03 21:05…

CPS

http://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3ACPSここではpredが真になるときに (cont (car data) (lambda () (match (cdr data) pred cont))) とcontをよんでいるけど、末尾呼び出しの最適化がない言語でこんなことをやったらスタックがあふれ…

Rubyでの実装

継続 http://i.loveruby.net/ja/rhg/cd/continuation.html

Scheme

SchemeのWikiの説明がとても参考になる。。とか思っててふと気づいたのだけど、もしかしてわたし自覚なしにSchemeを実装しようとしている??汗汗グリーンスパンの第10法則(><。

Scheme:多値

http://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3A%E5%A4%9A%E5%80%A4 Continuation-passingで考えると、関数呼び出しと関数からのリターンには区別が無くなる。どちらもcallerの用意した値をcallee側の仮引数にbindするだけだ。 うむむ、たとえば(+…

続・継続の作り方

再帰呼び出しの直列化はできるようになったんだけど、返り値を使わない関数どまり。nを与えるとnをデクリメントしながら0になるまで表示するって言う関数。次は階乗を求める関数あたりだとおもうのだけど、返り値がどの関数の引数になるべきかとかどうやって…

継続の作り方

継続を作るためには、まずgotoを作らないと行けない気がしてきました。 今はapplyがapplyをよんで。。。という形でフローが制御をされているのですけど、その呼び出しのスタックを取っておいたり勝手に破棄したりできない言語では再帰呼び出しの途中にジャン…

1引数1返り値

Unlambdaに限って言うと全ての関数が、関数を1個取って関数を1個返すことになっているので返り値がない場合とか考えずにつねに最後の返り値を次のに渡していけばいいんだね。だいぶわかった。もう眠いけど、こんど時間のあるときにJSでの実装に挑戦するよ〜…

ひとやすみ

おかたづけ。

継続

最初の継続がどこからやってくるのかがわからない。あと「returnのかわりに継続をコールすればいい」というはなしは、末尾呼び出しの最適化がない言語で文字通りの実装にするとスタックオーバーフローを起こしてしまいそう(><。。 > (define call/cc call…

Unlambda実装中

途中まで実装したよ。 個々の命令の一覧はどこにあるのかと思ったら解説ページの下の方にあったー。 http://www.madore.org/~david/programs/unlambda/#combiOCaml版のコードによくわからない「cont」がたくさん出てくるのがなぜなのか理解できてなかったけ…

なんでも継続

なんでも継続 http://practical-scheme.net/docs/cont-j.html

継続

http://ja.wikipedia.org/wiki/%E7%B6%99%E7%B6%9A何となくわかった。 問題は継続のない言語で継続を実装するにはどうしたらいいのかということかな。 - Continuation Passing Styleってものをつかうらしい。 http://www.is.s.u-tokyo.ac.jp/vu/jugyo/proces…

delay実装

```d.a.b.cがbを出力するのは正しい挙動なのかな? unlambdaでコードを書く力がないと、作ったunlambdaの挙動が正しいかどうかがすぐにわからない。Schemeで書かれた処理系で試してみた。 > (main) `d.a (d1 (pr #\a)) > (main) ``d.a.b a(pr #\b) > (main) …

Monad

モナドの勉強をするならこれを読むのがいいって言われました。 http://www.ipsj.or.jp/07editj/promenade/4703.pdf

Unlambda

いきなりOCamlのコードを読みながらHaskellで書くのは大変なので一度JavaScriptで作ろうかと思っています。今日はもう眠たいのでこんどね。

quine

ウィラード・ヴァン・オーマン・クワイン - Wikipedia http://ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A3%E3%83%A9%E3%83%BC%E3%83%89%E3%83%BB%E3%83%B4%E3%82%A1%E3%83%B3%E3%83%BB%E3%82%AA%E3%83%BC%E3%83%9E%E3%83%B3%E3%83%BB%E3%82%AF%E3%83%AF%E3%82…

Objective Caml 入門

http://www.sato.kuis.kyoto-u.ac.jp/~igarashi/class/isle4/mltext/ocaml.html

HaskellとJavaの対応

Haskell : Java 型 : クラス data : class 型クラス : インターフェイス (Ord a) => a : class A implements Ord Ord : Comparable http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Comparable.html Comparableインターフェイスは言語的にはcompareToメ…