タグ

c++とlispに関するneumannのブックマーク (5)

  • おびなたのはてな日記 - C++ テンプレートでLisp

    一昨日のエントリー(d:id:earth2001y:20060929:p2)でC++のテンプレートがチューリング完全性を備えているということを、見つけた論文から言及した。で、C++テンプレートだけでBrainfuckインタプリタを書こうとして一旦挫折したが、テンプレートの記述が宣言的、関数的な点を考えて、純Lispを書いてみることにした。 純Lispについては、 はてなキーワードの純Lisp 純Lisp - Wikipedia あたりを、ご参考あれ。ようは、McCarthyがLispを発明したときのオリジナルで、最小のLisp関数セット。 PL.CT - Pure Lisp on C++ Template とりあえず、テンプレートの実装。 // cat purelisp.h class NIL { public: typedef NIL eval; }; class T { public:

    おびなたのはてな日記 - C++ テンプレートでLisp
  • C でクロージャ。 : torus solutions!

    クロージャが使えると、 それを使っていろんなことが可能になるので、 C でも似たことができないか試してみた。 内部状態をもつ簡単なカウンタを作ってみます。 最初に初期値を指定して、 呼び出す時に引数で数値を渡すと、 内部のカウンタがそれだけ増えて、 カウンタの値を返すというクロージャです。 Scheme だと Scheme で普通に書くと、 こんな風になると思います。 (define (make_counter k) (let ((n k)) (lambda (a) (set! n (+ n a)) n))) こうやってクロージャを返す関数を作って、 (define c1 (make_counter 0)) (define c2 (make_counter 5)) 初期値を変えてクロージャを 2 つ生成します。 (print (c1 3)) ; => 3 (print (c2 1)) ;

  • C++ lambda すーぱーぷろぐらみんてくにーーく!

    The Super Programming Technique §1.ラムダ式をC++で実現する【前編】 関数型言語の基的な概念であるラムダ式を、C++で実現する方法について紹介します。 ・高階関数(higher-order function) 他の関数を引数として扱う関数は、高階関数と呼ばれます。 「関数を引数にとる」のですが、関数を渡すためには、C++では、関数ポインタで渡すか、templateで渡すかです。(operator ( )をオーバーロードしたクラスをfunctorと呼び、これを引数templateを用いて渡すテクニックについては⇒集中講義4. 超高速描画の謎【後編】を参照のこと。) グラフィックの転送ルーチン等は、処理の99%が同じで、ピクセルをコピーする関数のみが違うという場合があります。このように、共通の処理がある場合、この高階関数にすると処理がすっきり書けます。

  • WhizzVision | カスタマイズ | 第1回「モデル空間に線分を作図する」

    を使用し、あるテーマに対してのプログラム比較を行います。 動作環境は、OS:Windows2000、AutoCAD2000iです。 ベタなテーマです。しかし、線分は必ずといっていいほど図面中に含まれます。 それでは、それぞれのインターフェイスを使用して線分作図部分のコードのみを記述してみます。 なお、作成線分は始点座標(1, 1, 0)、終点座標(5, 5, 0)を持つものとします。 (defun C:sample() (setq e (list '(0 . "Line") ;図形タイプ '(100 . "AcDbEntity") '(67 . 0) ;モデル空間 '(100 . "AcDbEntity") '(10 . 1.0 1.0 0.0) ;始点座標の設定 '(11 . 5.0 5.0 0.0) ;終点座標の設定 '(210 0.0 0.0 1.0) ;押し出し方向(省略可能) )

    neumann
    neumann 2008/06/19
    10と11はペアじゃないっす。
  • WisdomSoft

    WisdomSoft(旧) このサイトはすでに運用を停止しています。 新しいコンテンツはこちらをご覧ください ■Products■ 書籍 ソフトウェア 読C 読Java Javaアプリケーション作成講座 Windowsゲームプログラミング ゲームエンジン プログラミング C#ゲームプログラミング Cisqua Developers Network プログラミング システムとAPI C言語入門 C++入門 C#入門 D言語入門 Java言語入門 Objective-C入門 Lisp入門 Perl入門 PHP入門 アセンブリ言語入門 Win32 API入門 標準 Windows API コモンコントロール マルチメディア API Windows ソケット JavaAPI入門 AWT入門 Swing入門 ネットワーク入門 Microsoft .NET入門 DirectX入門 OpenGL入門

  • 1