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

結論

「流れるようなインタフェース」はCでも(それっぽいものが)作れる! ただし色々と茨の道。素直にOOPLや関数型使うといいんじゃないかな。

デメリット

メソッドの呼び出し順をコンパイラが識別できない。 >createやcloneせずにいきなりfetchしちゃったり その他もろもろデバッグが困難かも。

メリット

このパラダイムのメリットは、JavaScriptのJQueryと同じく、グローバルの関数名を汚さないところ。 例では操作用オブジェクトの生成関数を作ったけど、静的でも良いはずなので。 また、メソッド呼び出しをオブジェクト経由で行っているからポリモルフィズム…

考察

作ってみてわかったけど、真面目に作れば作るほど言語処理系の実装みたいになる印象(題材が再帰的構造をもつ複素数というのが大きいが) 終端文字列に達したら値をポップするのがそのまんま。

実行結果

real: 15.076923 imaginary: 2.384615 参考:google電卓 (((3 + (2 * i)) + (3 + (2 * i)) + (6 + (4 * i)) + (5 + (3 * i)) - (4 + (3 * i))) * (3 + (2 * i))) / (2 + (3 * i)) = 15.0769231 + 2.38461538 iいきなり胡散臭いソースになっているが、それら…

作ってみた

// main #include <stdio.h> #include "MyComplex.h" int main() { MyComplexOp *op = createMyComplexOp(); MyComplex* x; MyComplex* y; y = op->create(4,3)->fetch(); op->create(3,2) ->add(op->clone()->fetch()) ->add(op->clone()->fetch()) ->add(op->create</stdio.h>…

C言語で流れるようなインタフェースを作ってみよう(ネタ)

数年ぶりにこっちにかいてみよう。 なんか最近はJQueryやらLINQの流行で、「流れるようなインタフェース」がトレンドらしい。 ふと思いついてC(C89)でやってみた。題材は、複素数で(四則演算まで)。 なお、メモリ管理を考えるのが面倒なのでfreeしてません…