2004-08-23 (Mon)
_ .NET Framework 2.0 SDK Beta 1 x86
The Microsoft(R) .NET Framework Software Development Kit (SDK) version 2.0 includes everything developers need to write, build, test, and deploy .NET Framework applications--documentation, samples, and command-line tools and compilers.
[Download details: .NET Framework 2.0 SDK Beta 1 x86より引用]
いつの間にか出ていた。 たぶん、genericsがサポートされていると思うので、要チェックだ (monoと互換性があるといいな)。
2005-08-23 (Tue)
_ Coroutines in C
anthy-devより。
Cで、
switch (count % 8) {
case 0: do { *to = *from++;
case 7: *to = *from++;
case 6: *to = *from++;
case 5: *to = *from++;
case 4: *to = *from++;
case 3: *to = *from++;
case 2: *to = *from++;
case 1: *to = *from++;
} while ((count -= 8) > 0);
}
のように書けることを利用してコルーチンを実現するという話。 Cは奥が深いな。*1
そういえば、と思って、前にScrapBookで取りこんでおいた 以下の記事を見に行ったら、すでにページがなくなっていた。
どこかに移動したんだろうか。
*1 褒め言葉ですよ。
_ Method Finder
Method Finder というのは、振る舞いからメソッドを探す(!)ためのある種“逆引き”ユーティリティ。「3. 4. 7」とかいうふうに、レシーバ、引数、(期待される)返値の順にリテラル(あるいは値を生成する式)をピリオドで区切って入力すると、該当するメソッドを列挙してくれます。
[sumim’s smalltalking-tos - Ruby の <=>より引用]
へえ。Rubyだとこんな感じかなあ。
def find_method(recv, args, ret)
return Thread.start {
$SAFE = 4
recv.methods.select { |method|
begin
recv.send(method, *args) == ret
rescue Exception
false
end
}
}.value
end
p find_method(3, [4], 7)
p find_method("foo", ["f", "F"], "Foo")
p find_method("foo", [], "Foo")
実行結果:
$ ruby findmethod.rb ["+", "|", "^"] ["sub", "tr", "gsub", "tr_s"] ["capitalize"]
すごくいやな予感がしたので、一応$SAFE = 4にしてみたけど、 Squeakではどうやって実現してるんだろうか。
_ Re: Method Finder for ruby
すでにあったらしいorz....
id:shinichiro_h さんが、Squeak の Method Finder にヒントを得て、さっそく Ruby で使える Method Finder をこしらえて公開してくださいました。動的言語 and/or 動的システム、万歳!ですね。w