一昨日のエントリー(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 でも似たことができないか試してみた。 内部状態をもつ簡単なカウンタを作ってみます。 最初に初期値を指定して、 呼び出す時に引数で数値を渡すと、 内部のカウンタがそれだけ増えて、 カウンタの値を返すというクロージャです。 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)) ;
The Super Programming Technique §1.ラムダ式をC++で実現する【前編】 関数型言語の基本的な概念であるラムダ式を、C++で実現する方法について紹介します。 ・高階関数(higher-order function) 他の関数を引数として扱う関数は、高階関数と呼ばれます。 「関数を引数にとる」のですが、関数を渡すためには、C++では、関数ポインタで渡すか、templateで渡すかです。(operator ( )をオーバーロードしたクラスをfunctorと呼び、これを引数templateを用いて渡すテクニックについては⇒集中講義4. 超高速描画の謎【後編】を参照のこと。) グラフィックの転送ルーチン等は、処理の99%が同じで、ピクセルをコピーする関数のみが違うという場合があります。このように、共通の処理がある場合、この高階関数にすると処理がすっきり書けます。
いつもの実況メモです。 開会の言葉 / ひげぽんさん Lispは今年50周年 本やチャットが活発 Sheme実装者が多い(利用者より多いかも?) Enjoy λ 50万行オーダーのプロジェクトを俺Lispで書く / mitamex4uさん L4uはLispを元にした独自の構文を持つスクリプト言語です。 10年でプロジェクトが巨大になって来た → 楽をするのにLispを使う なんでLisp? 小さい REPL(Read Eval Print Loop)できる L4u (Lisp for you!)*1 Lispが好きじゃなく、必要で産まれた ほんとはErlangを動かしたかった → Lisp → なので超並列型 読みやすいLisp 2バージョンを同時に実行することで、プロトタイプから物を作る時にデグレしない S式に統一し、XMLを利用しない → コードサイズ低 L4uは、DojaからServ
竹内郁雄氏(61歳) 撮影:大星直輝 竹内氏によると、Lispはすべての言語の原点なのだという。「いまRubyがブームだが、Rubyは要するにカッコのないLisp。XMLもぶ厚いカッコのあるLisp。いろいろなプログラミング技法を見ますが、『Lispにあった』ということが多いです」(竹内氏) 竹内氏の業績をひと言で語るのは難しい。1971~1973年、日本電信電話公社(現NTT) 武蔵野電気通信研究所 基礎研究部において、Lispを使った自然言語処理システムの研究を行い、1974~1979年、同研究所で人工知能研究を支援するための記号処理システムを次々に開発。1980~1986年、同研究所などで同社比約1000倍の規模の記号処理システムTAO/ELISを、ハードウェアからOS、応用ソフトまで一貫して設計・実装した。ELISについては竹内氏の功績を含めコン
Sc289(2) 認知情報処理 資料 〔旧版; 2001年度まで〕 概要・目次・参考資料 課題一覧 最終課題 課題レポート提出に関する諸注意 Xyzzyについて 概要 LISP言語の処理系を用いて人間の認知活動のモデルを計算機上に構成する手法について学び, モデル化の際に有効な記号的・数学的・論理的思考法に習熟することを目指す. テキストとして「これがLISPだ」(アンダーソン, J. R.,他 著/玉井 浩 訳,サイエンス社) を使用する.(→シラバス) 目次
presented by OUJI for AutoCad user ようこそ!いらっしゃいませ。 * ここは"AUTO LISPの学校"です。 やさしい先生と楽しいクラスメートがあなたを待っています。 AUTOLISPを始めてみたいあなた!どうぞ扉を開けてお入りください。 最近の話題とか!
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
を使用し、あるテーマに対してのプログラム比較を行います。 動作環境は、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) ;押し出し方向(省略可能) )
Paul Graham著,野田 開 訳 前書き 拡張可能なプログラミング言語 関数 関数的プログラミング ユーティリティ関数 返り値としての関数 表現としての関数 マクロ いつマクロを使うべきか 変数捕捉 マクロのその他の落し穴 古典的なマクロ 汎変数 コンパイル時の計算処理 アナフォリックマクロ 関数を返すマクロ マクロを定義するマクロ リードマクロ 構造化代入 クエリ・コンパイラ 継続 複数プロセス 非決定性 ATNを使ったパージング Prolog オブジェクト指向Lisp パッケージ 翻訳者 野田 開のサイト 原著者Paul Graham氏のサイト (c) 野田 開 NODA Kai <t50473@mail.ecc.u-tokyo.ac.jp>
傍から見ると、 プログラミング言語で最強(スケーラブル)なのは、 Lispだと思われます。 http://jp.franz.com/index.html しかし、 世間ではマイナー言語のようです。 なぜでしょうか。 習得が難しいのだとしたら、 どのくらい難しいのでしょうか。
最短2分で! WordPressサイトを公開 コントロールパネル(操作画面)から最短2分で、WordPressなどのサイト制作用アプリケーションがインストールできます。お申し込み後すぐ、ホームページを開設することも可能です。 ホームページ制作をプロにお任せ! ホームページ制作サービス 「独力でホームページが作れるか不安…」「高クオリティのWebサイトを作成したい!」そんな方もご安心ください。効果的なWebサイト制作からサーバーの設定まで、お客様の成功をサポートします。 Web制作・サーバー設定パートナー WordPressサイトが速い! 国内最速級の 高性能サーバー ページ表示速度は、SEOの観点からサイトの集客にも影響するため重要です。超高速新サーバーで、WordPressなどのCMSが快適に動くWebサイトが作れます。 もしもの時も安心! 自動バックアップ テスト環境も標準装備 万が一
AutoCADの作図効率アップを・・・ 平成16年3月より AutoCADでの作図をAutoLISPにて コマンドを開発し効率アップしませんか? (AutoLISP動作環境を有効に利用していますか・・) 図面(AutoCADのDWGファイル)をメールに添付して送付して いただければ無料にて効率アップを行うためのコマンド案を提案します。 (図面の内容によってはこちらにて提案ができないケースもあります。) 他のCADからAutoCADへ、部材集計、自動作図など、お気軽に問い合わせ下さい。 ・シェアウェア 包絡処理 ZWCAD Classic、IJCAD 2016 で動作します。 平成28年11月5日 Excel VBA関連 を追加 Excel VBA関連へ 平成28年11月14日 AutoCAD2000以降で動作するシェアウェアのAutoLISPコマンドがあります。 機能制限版(無料)にて
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く