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

過去の状態のスナップショットを取れるMap

時間を指定して、その時点での状態を取れるようなMapを作ってみた。 何に使うかとかは考えてない。 こういった、データの世代別管理をして過去のある時点をスナップショットとして取得できるようなデータ構造は、扱うデータが巨大になってバックアップのため…

Javaエンジニアとして,OracleによるSun買収話から感じたこと

ちょっと前になりますが、書きました。 http://gihyo.jp/dev/column/01/java/2009/0421 HPがなくてIBMも流れたら、事業分野と規模だけかんがえればMicrosoftというのもありだけどそれはありえないし、とくればOracleしかないなと思ってたわけですが。 http:/…

ラムダ計算とチューリングマシンの違い

ぼくもYコンビネータがわかるようになるまではそうだったのだけど、Yコンビネータを使うとどのような処理ができるのかがよくわからなくて悩んでいる人が多いように思う。他の人のブログを見ても、名前をつけずに再帰ができるのがすばらしいとか書いてあった…

Curlで行番号&goto

こんなマクロを定義する。 {define-macro public {with-line ?v:verbatim} {return {expand-template {let ?={expand-template line}: int = 0, ?={expand-template pc}:int = 0, ?={expand-template jump}:int = 0 } {while true do {value ?v} {break} } }…

Yコンビネータなんか要らない

「計算論なんかチューリングマシンで十分だし、おれはチャーチじゃなくチューリングについていくぜ!Yコンビネータくそくらえ!」 という人もいるんじゃないでしょうか。 やっぱチャーチよりチューリングですよね。 という人のために、われらがチューリング…

Duck Typing?

class Dog{ void bark(){ System.out.println("わん"); } } class Bird{ void twitter(){ System.out.println("ちゅん"); } } class Util{ static void sound(Dog d){ d.bark(); } static void sound(Bird b){ b.twitter(); } } class Main{ public static v…

おとうさん、ぼくにもYコンビネータがわかりましたよ!

やっと、Yコンビネータが何を意味するものなのか、どういう意義があるのかがわかりました。 名前を使わず再帰ができますよ!というだけのものじゃなかったのですね。 まずλありき 関数の話をしたいのです。 そのとき、いちいち hoge(x) = x * 2 としてhogeを…

NetBeansが現場で使われないのは、Strutsばかりが現場で使われるのと同じ理由ではないか

本文略

Erlangでクイックソート

-module(qsort). -import(lists, [append/2]). -export([qsort/1]). qsort([])-> []; qsort([First|Rest])-> append([X || X <- qsort(Rest), X < First], append([First], [X || X <- qsort(Rest), X > First])).

バイナリーとテキストの違いではなく構造化と半構造化の違いか

半構造のメリットをテキストデータのメリットと取り違えて議論しているのか。データ長は可変長にしておけというだけの話ではないよね?。 半構造というのは、厳密な構造化しなくても計算リソース投入しちゃえばいいんじゃない?という話だと思うので、通信プ…

データ構造の選定より重要なもの

この話題、すっかり乗り遅れてしまった。 あえていわせていただく。コードはデータ構造の選定ができるだけはるかにましなのだ、と。バイナリーを使うかどうかなんぞ、その問題と比べれば屁ですらないのだと。 データ構造の選定よりもはるかに重要なもの、そ…

組み込み向けUMLが参考になるのかも

ブックマークコメントで、UMLでもできるという指摘をいただいたので調べてみたら、組み込み向けUML拡張では時相論理を取り入れているものがあるようだ。 これとかもそうなんだろうか http://www.object-report.jp/2007/12/18/marte/