えちょ記

語らないブログ

技術系与太話

副作用から考える並行処理とアクターモデル

相変わらずいきなり仕事が忙しくなっているので、また関数言語の話。 「関数言語は副作用が無いから並行処理に向いている」とよく言われます。ですが、そもそも副作用ってなんなんだ?という本質的なところで理解できないことが多いんじゃないかなーと。そも…

関数型言語で工数削減できる理由、後編

で、結局どうなのよ、という話。まあ、いい話も悪い話もあったりするのですが。 値のバグについて追跡が容易 ある変数の値がおかしいとき、一般の言語ではその値の出所(バグコードの場所)を特定することが困難になりがちです。どこで値が再設定されるのか…

関数型言語で工数削減できる理由、前編

「関数型言語は開発効率が良い」とよく言われます。「オブジェクト指向と比べて‥‥」なんてつい比較してしまうがゆえに論争っぽいループが発生したりするのを良く見かけますが、まあそれはおいといて、実際なぜ効率が上がるのか考えてみました。 関数型言語が…

静的単一代入がキモ

erlangなどの関数型言語ですが、結局のところ特に大事な要素は変数の静的単一代入を採用しているかどうか、だと悟りました。うん、きっとそうだ。関数型言語の文法設計には静的単一代入に帰着するものが数多くあります。末尾再帰によるループの構成、参照カ…

熱すぎた

ぬるく考えるにはやばすぎるネタだったのでちょっと中断。RETEは追いかけると面白いんだけど、この分野を自分で追うにはやはり車輪の再発明だ!もうちょっと現実路線のネタにします‥‥。

Reteアルゴリズム、その2

とりあえず一通りの説明はWikipediaとか、Redhatのサイトの説明とか。ものすごいおおざっぱな説明をすると、投入された全ルールに含まれる個別の判定文を、全部まとめて一つのIF文にしてしまう仕組みです。まとめるときに同じ比較式があったら、一つにまとめ…

Reteアルゴリズム、その1

で、Reteアルゴリズムです。これは前方前向き推論で行う必要がある高速多重パターンマッチの実装ですが、よく考えたら私自身、言葉だけでアルゴリズムそのものは深く追っかけたことがありませんでした。 ということで、erlangで楽しく組んだらどうなるのか、…

ぬるく考えてみる

最終的にちゃんとした記事になる保証がないのでとりあえずコラムで。まとまったらAIカテゴリに突っ込むかもしれません。erlang本買いました。面白いですねー、この言語。面白いだけじゃなくてガチの作り込みがあるところも良い。 言語というか、OS環境に近い…

Apache CouchDBがおもしろい件について

数週間くらい前から、SilverlightとかJavaScript関係で調べ物をしていたんですが、その関連でRESTfulなファイルシステム、あるいは入れ物を探しておりました。WebDAVでまあいいんですが、どっちかというとWiki的な入れ物をSilverlightとかつかって遊べないか…