タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

c++とLispに関するkenkitiiのブックマーク (2)

  • 500行Lisp

    組み込み用途で500行のLispインタプリタ作ってみました。 使用言語はC++でboostライブラリ使ってます、 コンパイルは Windowsでcygwinをつかっているのならば、 最新のcygwin setup.exeで、devel -> boost-devel、gcc-c++ を選択し ソースコードをテキスト保存して > g++ hoge.cpp -o a.exe でコンパイルできます (Linuxや、そのほかのコンパイラでのboost C++ Libraries インストールにかんしてはコチラのサイトLet's Boostが詳しいです) 実行は、こんな感じ、 > a.exe "(+ (* 3 4 5) (* 5 6 7))" とりあえず四則演算と比較関数、if文と文字列の足し算とlambdaとクロージャーしか実装してません。 これからスレッドとか、ソケット周りとかを実装しようとおもっ

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

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

    kenkitii
    kenkitii 2005/08/06
    ラムダ式をC++で。
  • 1