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

昔書いたもの

昔書いたものが検索に引っかかった。 現在HIT数608か……少なっ。ダウンロード数を数えておけば良かったかも。 http://threesixty.hp.infoseek.co.jp/

ANTLR

ANTLRを使ってみた。環境はANTLR plugin for Eclipse。 ちょっと書き方は違うがJavaCCと大差はないらしい。<>などをいちいち書かなくて良いのも良し悪しだし。

AllAbout

web

AllAboutが微妙なのは「ライターがその道のプロを名乗っている」点に尽きると思う。 ライターはライターであり「その道」に入った人ではないわけで、看板に偽りありという印象が強い。 本当の「その道のプロ」に紹介文を書いてもらう(それをライターが編集し…

プーシキン展

これがその「誰かと全く意見が合わないようなこと」。 勧められて見に行ったのだけど、正直いまいち。ピカソ、特に女王イザボーは良かった、これが見れただけでもチケット代の半分は元を取れた感じ。(残り半分は不満の額ということで) まあ、そもそも私は印…

mixi

web

mixiを始めた。 プログラム関係のことは従来どおりこちらに書く。小説関係のことは向うに書くかも。あ、それから知合いには聞かれたくない類のことはこちらに書く……誰かと全く意見が合わないようなこととか。

メモメモ

javascriptで func = object.methodとするとオブジェクトに関連付けられていないmethodそのものが得られる。 pythonで同様にするとオブジェクトに関連付けられたobject.methodが得られる。 紛らわしいな。

id:m-hiyamaさんへ、(メソッドではない)関数のCurry化ならテキスト処理無しで出来ますよ、と。 function curry(func){ return function(x){ return function(){ var args = new Array(arguments.length+1); args[0] = x; for(var i=1;i

ssh on python

pythonからssh接続するためのモジュールってないかな。

DrumnBassTV

最近はhttp://www.drumnbasstv.com/ばかり聞いている。しかもEqualizerで低音をブーストして。

型検査7

解析後の動作を関数化して渡す版。これで作ったbefore()をwrap()に渡せば少し軽くなる。 var makeBefore = function(original){ var re = /function(?:\s+[a-z$_]+)?\s*\(\s*((?:[a-z$_]+\s*)(,\s*[a-z$_]+\s*)*)?\)/i; var str = original.toString().match…

型検査6

var rec = function _f(tgt,list,func){ array = list[tgt]; if(array instanceof Array){ for(var i=0; i

型検査5

型検査2のコードはobjectの場合に正しく動かないな。 if(!eval(args[i]+" instanceof "+cond)){ throw "TypeError"; }ではなくて、 if(!eval("args[i] instanceof "+cond)){ throw "TypeError"; }または if(!args[i] instanceof eval(cond)){ throw "TypeErr…

型検査4

結局、typeof,instanceof程度の型検査が現実的な落としどころだということが判った。http://d.hatena.ne.jp/kilrey/20051009#p1の解法(ex.x$number)は見た目も打鍵数も穏当であり、実用に耐えるものであると信じる。 では、関数の型検査化を簡略にする手段を…

Way Out West - Intensify

4つ打ちドラム×軽快なメロディ。踊り向きのビート。 このハウスは好きだな。軽いだけの能天気な音楽じゃないし。 特にtrack8のMindcircusが良いね。?そういえばこの曲は4つ打ちじゃなくて、ドッドッドドゥドッとシンコペ入っているな。そうか、私はシンコ…

型検査3

変数名に疑似コードを織り込むというやり方についてなのだが、全角でコードを書いてしまうという手法が最も強力なのは間違いない。しかし、強力すぎて本来のコードを見失いかねない(というより絶対に見失う)ので、実用性は皆無だろう。 許せる範囲で言えば変…

The Chemical Brothers - Singles 93-03 ASIN:B0000C7PSI

ツカツカタッツカ、というか無理。音数が多い。 テクノらしいテクノというよりはテクノ的なロックという印象。ギターが表に出ているし、ドラムも機械機械していないし。 何というか健全だ。健全過ぎるものは性に合わないのだ、たぶん。

型検査2

少し簡略化して「変数名$型名」という形式にしてみた。 var before = function check(original,args,result){ var re = /function(?:\s+[a-z$_]+)?\s*\(\s*((?:[a-z$_]+\s*)(,\s*[a-z$_]+\s*)*)?\)/i; var str = original.toString().match(re)[1];//引数名…

FUMIYA TANAKA - DJ MIX 1/2[MIX.SOUND.SPACE]ASIN:B000065EM3

ミニマル。ツッツッタッツ、ツッツッタッツ。ループ、ループ。 こういう音楽も有りだな。前景にするというよりは背景として何かと共に聴くという感じ。誰かと二人でゆったりと喋っている後ろで何事でもない調子で流れているとちょうど良い。お酒もあった方が…

μ-ziq - Lunatic HarnesASIN:B00005GOGW

4つ打ち+αのバスドラとうねるベース。その上に乗っかる細かいハイハット、クリーンな音合いのメロディ。 単純に言って心地良いのね。低音部は体が踊りだすようだし、高音部は聴き入るに向く。どちらでも良しだから一曲を聴いている間でも体を動かす時間と落…

新項目

その日に聞いた音楽を晒していくことにした。

型検査

関数を作る際、引数名に型検査を行うためのコード片を埋め込む。 それを適切に変換して評価する関数をaspectとして織り込む。 評価の結果が真ならば型検査に通ったとみなす。 という機構を考えた。コードは後で書く。

javascriptでAspect3

実用性を考えた結果、beforeやafterにはoriginalを渡す方が便利だし、aroundも欲しいということで↓のようになった。 var wrap = function(original,before,after,around){ var func = function(){ if(before){ before.apply(this,[original,arguments]); } v…

javascriptでAspect2

乗っ取りの実行部に約束事が残るのは嫌。なので var wrap2 = function(obj,id,before,after){ obj[id] = wrap(obj[id],before,after); } var obj = { _x:"X", getX:function(){return this._x;} }; // 乗っ取りの実行 wrap2(obj, "getX", function(){alert("…

javascriptでAspect

http://d.hatena.ne.jp/m-hiyama/20050928/1127869442に関してメモ。 単純に関数を乗っ取る場合は下のようにすれば良さそう。 var wrap = function(original,before,after){ var func = function(){ before.apply(this,arguments); var result = original.ap…

javascript

http://d.hatena.ne.jp/m-hiyama/20050808/1123486683の記事を読んでjavascriptを理解した(つもり)。 C言語やJava風の見た目をしているけど、実際には「プロパティを連想配列で実現した関数言語」なのだ。LispならぬHasp(HASh Processor)とでも呼べばよいだ…

各言語のlambda

気になって調べてみた。 python lambda x: x*xjavascript function(x){ return x*x; };Groovy { x -> return x * x }scheme (lambda (x) (* x x))Haskell \x -> x*xOCaml fun x -> x*xC#*1 delegate(int x) { return x*x; }以下、余談。 型を明示する言語で…

pythonのlambdaって

lambdaの定義が複数行にわたるのが許されたとしても文法は破綻しない。だけど、そう扱えるようにはならないのは何故だろう。 func = lambda x: x*x#これが正しい形func = lambda x:#これは出来ない return x*x

メモ

http://dmoz.org/Computers/Programming/Languages/Lisp/Scheme/Implementations/Java-Based/

ちょっと良いことがあった

本人にとっては悪いことなので内容は書かない。

独自言語について考える。

schemeは何でも出来る言語だ。Cも何でも出来る言語だ。どちらも間違っていないが、両者は「何でも出来る」という範疇の中で対極にある。(対極より外側に位置する言語もある。)計算アルゴリズムの問題にはschemeが適しているし、インターフェースカードのドラ…