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

新しい言語が広まるには

言語に限ったことじゃないけど、新しいものが広まるにはやっぱりイノベーターがアーリーアダプターに伝えるというプロセスが必須なのかなと思った。 プログラム言語に限って言えば、より強い影響力を持つイノベータは matz さんとか dankogai さんとかなわけ…

http://www.cm.kj.yamagata-u.ac.jp/blog/index.php?logid=7680 結局、実名を晒したからといって【自動的に】発言の質が向上するなんてことは考えられないわけで、【能動的に】発言者が発言の質を高めようとしなくちゃならない。そりゃ良心的な人は 「実名出…

ディスプレイが綺麗なのも困りもの

夜食に食べたラーメンの汁がはねたりしたのがハッキリと見えるのはなんか汚らしい。中途半端に拭いたくらいじゃクッキリ見えたままだし。

php についての云々

Matzにっき(2008-01-26) matz さんの日記が dis られているという話。けど、この列挙されている項目は単に matz さんが引用・翻訳しただけで、matz さん自身が書いたわけじゃないんだよなぁ。代理戦争?php の難点は 『運用で回避』 の部分が目立つこと、か…

小倉先生のコメントに対する返信

小倉先生……どうやってコメント投稿したんですか(苦笑) http://d.hatena.ne.jp/SiroKuro/20080125#c1201650701小倉先生の比喩も間違ってはいません。思想に関しては小倉先生が持ち出す例えは良く理解できます。ただ実名制の影響力を小倉先生は過小評価してい…

quine

数時間悩んで、結局 Python のコードを参考にしてしまいました。 参考:このあたり a=[ "puts:\"a=\"+a+\";\";" "for s in a do puts:s;end" ]; puts:"a="+a+";"; for s in a do puts:s;endkuzha って基本 Io + Python + TJS + Ruby だから、ところどころ Py…

仮引数と引数の数が合わないときには

そのまま呼び出されちゃうようにしてみた ku> add = ^x y(x + y); > -> kuzha.object.KuFunction@9f2a0b ku> add: "abc" "def"; > -> abcdef ku> add: "abc"; > -> abcvoid ku> add; > kuzha.IllegalOperationException: void + void を計算できません。こう…

関数の引数

は、やっぱり C みたいに func(arg1, arg2);みたいにしたほうが良いのかなあ。 今の文法だと func: arg1 arg2;だけど、はてさて……。

変数名を動的に生成する方法

io よろしく name = "hoge"; setSlot:name 123;とする予定。 キーワード引数についての変数名は name = "hoge"; func call: self args { setSlot(name, 456); };で対処できるかな? けど func が引数無し関数だと func の時点で評価されちゃうな。 name = "h…

function definication

fun add: x y do return x + y; endで定義される関数定義の構文を消した。 今度からは add = fun x y do return x + y; end;みたいな匿名関数へ一本化しました。 ちなみに add = fun x y (x + y);みたいに、() の中に式を書く構文も追加してみました。

通算ダウンロード数

が1400個/月を超えていました。みなさまありがとうございます。 1.0 以前のバージョンはダウンロード数が100個/年程度だったので、vector の新着レビューの効果が物凄いということを改めて実感いたしました。

kuzha の変数スコープ

一応レキシカルスコープですが繋ぎ変えは parent から可能だったりします。 ku> a = "lexical"; > bar = ^(puts: a); > foo = ^do > a = "dynamic"; > bar; > end; > foo; > lexical

kuzha で Y コンビネータその2

とりあえず匿名メッセージを送ると関数が呼び出されるようにしてみた。 ku> sample = ^(puts: "Hello!"); > kuzha.object.KuFunction@929206 ku> &sample; > kuzha.object.KuFunction@929206 ku> &sample; > Hello!ので、さっきのYコンビネータを書き換えて…

kuzha で Y コンビネータ

元ネタは Y コンビネータって何? - IT戦記 と Y Combinator から、kuzha で Y Combinator を作ってみた。 ku> Y = fun f do > temp = fun proc( > f: fun arg do > temp = proc: &proc; > return temp: arg; > end > ); > return temp: fun proc( > f: fun …

小倉先生への質問状

小倉先生の記事 に付いた小倉先生のブックマークコメントに”かっちーん”と来てしまったので、ちょっとぷち切れモードの SiroKuro です。 ↓情報発信自体をするなとは言ってないですよ。 はてなブックマーク - OguraHideoのブックマーク / 2008年1月28日 さて…

実名制になると

アイドルとか俳優とかの有名人のブログがみんな実名表記になって、それはそれで愉快なのかもしれないとか何となく思った。

実名だからストレスを受けるのですよ

常に2ちゃんねるのスレッドの動向等に注視してネットの「空気」を読み、匿名コメンテーターの感情を害さないように注意しなければ何も語れない言論環境で、「ストレス過多なコミュニケーションをしなくてすむ」といわれても説得力がありません。 表面的にで…

正直、実名制になったら

『銀猫様は俺の嫁』 なんて発言も気軽に出来なくなるのではと思うと、どうしても実名制に反対せざるをえない。

id:umekoumedaさんとID交換

サイボウズの会社説明会

に向けて移動開始(;`・ω・´)

Pathtraq 面白いっすねぇw

このページのレートは 0.1/6.3 だけどなー

天からの呼び声―ダブルクロス・リプレイ・ストライク〈2〉 (富士見ドラゴンブック)作者: 小太刀右京,F.E.A.R.,石田ヒロユキ出版社/メーカー: 富士見書房発売日: 2008/01/19メディア: 文庫 クリック: 23回この商品を含むブログ (30件) を見るてぇいる・ちぇい…

前々から思ってるんだけどさ、

実名になったらどういうプロセスを辿ることでネットが健全になっていくのか、いまいちよく分からないんだよな。

kuzha からJava のメソッドを呼び出す

案その1 func = jfunc: "java/lang/Object" "toString" "()V"; func@"abcdefg";

バグフィックス

FIX 休止状態から復帰する際にデータが書き込まれないように修正 書き込み時の例外ハンドラが記述されてなかったので修正 TODO 「最近既読にした記事」のページを作る

インラインアセンブラ

とか導入したらどうなるんだろうとか一瞬思った。 for i in [1..10] do asm getstatic "java/lang/System" "out" "Ljava/io/PrintStream;"; ldc "Hello world!"; invokevirtual "java/io/PrintStream" "println" "(Ljava/lang/String;)V"; end endみたいな。

match 演算子と replace 演算子

void RegexExpression()#void:{ }{ AdditionalExpression() ( "~=" AdditionalExpression() #OpRegexMatch(2) | "^=" AdditionalExpression() #OpRegexReplace(2) )* } 今更思ったんだけど、match はまだしも、replace って2項演算子じゃ無理じゃね? void …

PGP を Thunderbird に

pc 変えてから入れてなかったなと思いだして、とりあえず入れてみた。ついでに gmail.com のほうの鍵も生成。参考にしたのは http://stahl.arch.t.u-tokyo.ac.jp/~iyama/memo/Computer/gpg.html http://www.gnupg.org/ から GnuPGP をダウンロード・インスト…

インタラクティブモード

>java -cp .;%CLASSPATH%;asm-3.1.jar kuzha.Main ku> puts: "Hello world!";; Hello world!よし動いた。

の実行時コンテキスト

print = ^do puts: name; end; this.name = "みけ"; tama = { name = "たま"; }; print; // -> みけ tama print; // -> たま tama print@{ name = "くろ"; }; // -> くろ tama print@{ name = "くろ"; }|name = "こま"; // -> こまちょっと複雑。