3d-mathA library implementing the necessary linear algebra math for 2D and 3D computations babylonJürgen Walther's modular, configurable, hybrid knowledge engineering systems framework for Common Lisp, restored from the CMU AI Repository.
A正規形についてまとめました。日本語の資料があまりに少ないのでまとめたのですが、正直理解できているか不安です。間違いを含んでいる可能性がある点にご注意ください。 間違いのご指摘やツッコミ大歓迎です。 あと念のため書いておきますが題材は、Schemeですが、A正規形自体はLispやSchemeに特化した話ではなく、もっと一般的な話です。 A正規形の論文 The Essence of Compiling with Continuations - Flanagan, Sabry, Duba, Felleisen (ResearchIndex)という論文で解説されています。 この論文を読んで自分なりに理解できたことをここに書いています。 理解の前提 Scheme の let 式が分かっていないと理解が難しいかもしれません。 A正規形は何の役にたちますか? コンパイラのコード生成時の中間表現として使
以下のようなditaa用入力テキストを簡単に描けるように, emacsのpicture-modeを拡張した. +---------+ +--------+ |{s} | | | | データ +--------->| 処理 | | ベース | | | +---------+ +---+----+ | v +---------+ +--------+ +---------+ |{s} | | | |{s} | | データ +--------->| 処理 |<---->| データ | | ベース | ^ | | | ベース | +---------+ | +---+----+ +---------+ | | | v +---------+ | +--------+ |{s} | | |{d} | | データ +----/ | 出力 | | ベース | | | +---------+ +-----
Emacs上でSLIMEを起動するのはかんたん。M-x slime と命令するだけでOKだ。 けど終了させるときはどうだろう。 まず、Emacsじたいの終了は最悪の結末をもたらす。これまで何度か起こっているように、lisp-runプロセスがEmacsという親プロセスを無くして暴走、CPUパワーを食いまくるということになってしまう。これをいちいちkillするのは何とも馬鹿らしい。 じゃあlispを消せば良いじゃん。うん、じゃあやってみる。 CL-USER> (bye) ; Evaluation aborted ==================== Lisp connection closed unexpectedly: exited abnormally with code 256…なるほど。inferior lisp program は殺せても、Emacs上でのバッファは消えない。おま
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
空気を読まずに4/1なのに本気エントリの投入です。今までいくつ作られてきたのか分からない、括弧を自動挿入する系のelispを作ったのでリリースします。 私はこれを使い始めてから、閉じ括弧とスペースを打つ回数が激減しました!さらに、怖いぐらい宝くじも当たり、長年の持病だった痔と水虫も治ったらいいなぁ。まずはデフォルト設定を一週間試してみてください。 紹介のためのスクリーンキャストを撮影しましたので、とりあえずご覧下さい。 試しに使ってみる! スクリーンキャストを見て、面白いと思ったはずなので使ってみましょう。 インストールは (auto-install-from-url "https://raw.github.com/uk-ar/flex-autopair/master/flex-autopair.el") を評価するか、 marmaladeから M-x package-install fl
田無の権兵衛とk先生をお借りいたします、竹内郁雄先生。 田無の権兵衛:(突然、玄関先で大声) たのもーう。 K: なんだ、騒々しいな。やや、田無の権兵衛ではないか。達者であったか。ささ、上がりなさい。 久しぶりじゃのう。今まで何をなさってたのかな。 田無の権兵衛: 実は昭和の終わりごろ、Lispの修行をするためにインドに旅立ちました。 山奥に篭って修行すること25年。やっと少しはLisp道を極めたように思い、懐かしい日本に帰ってまいりました。 K: おお、それは難儀であったな。久しぶりの再会じゃ、今夜はLisp話を酒の肴に語り明かそうではないか。 田無の権兵衛: それはかたじけない。そうそう、日本に帰ってきて驚いたのです。日本人はみんなスーパーコンピューターを 所有しているですか? K: いや、いくら日本人が猛烈に働いて豊かになったとは言え、スーパーコンピューターを個人で所有している
What is husk? husk is a practical implementation of the Scheme programming language for the Haskell Platform. A superset of the R5RS standard is provided, along with most of the R7RS standard. Advanced features include: First-class continuations of unlimited extent Hygienic macros based on syntax-rules Low-level explicit renaming macros Library syntax from the R7RS standard A foreign function inte
先日の関西Emacsの会で発表しました deferred.el です。 deferred.el はEmacs Lispでの非同期処理を書きやすくするためのライブラリです。 (2010/10/08 追記:コンパイルできないバグがありますので修正中です。コンパイルしなければとりあえず動きます。。。) (2010/10/08 追記:コンパイル出来るようになりました。毎回ミスばっかりですみません。) 入手・ドキュメント 以下のGutHubの日本語ドキュメントの方に一通り書いてみました。 deferred.el 日本語ドキュメント そのうち頑張って英語に直したいと思っています。(手伝ってもらえると助かります><) ドキュメント目次 インストール 使い方例 インタフェース解説 関数 実行・接続 ポイント deferred.el デモ:慣性スクロール ライブラリなのでdeferred.elを単体でインス
だいぶGaucheに慣れてきました。今回は文字列の出力方法をこまかく指定するためのformat関数について書式を調べてみました。もともとK&R脳なのでprintfとの比較もしてみます。 Scheme言語ではprintf/sprintfのような書式指定にformat関数を使います。SRFI-28として規定されているのは、~a ~s ~% ~~ の4種類のシンプルなパターンのみなので、実用的な処理系としては独自に拡張することが必要になります。 Gaucheの場合、Common Lispを参考にformat関数の書式指定が実装されているとのこと。また汎用の多機能ライブラリSLIBをインストールするとさらに多くの書式が使えます。 Gaucheのみの場合 Common Lispのformatの一部(+独自拡張?) パディングやカンマ挿入の機能が豊富 16進数の大文字小文字が指定できる 実数の書式指定
EmacsにはScheme-modeというSchemeプログラミングをサポートするための環境があります。ここではGaucheとEmacsを使ってプログラミングするための 簡単なEmacsの設定について説明します。 まずは、Emacsの設定ファイル(.emacsなど)を開いて下さい。 初めに日本語などを扱えるようにするためにエンコーディングを決めます。 (setq process-coding-system-alist (cons '("gosh" utf-8 . utf-8) process-coding-system-alist)) GaucheのデフォルトのエンコーディングはUTF-8となっているのでここではutf-8と書きました。もしEUC-JPならeuc-jp、Shift-JISならshift-jisと書いてください。 後は以下を設定に加えてください。 (setq scheme-p
Three Dogmas of Scheme (Recursion, Single name space and Continuation) R6RS にざっと目を通して一番驚いたのはそれまでの表示意味論が捨てられてしまっていることでした。 しかし 表示意味論 を捨てるなら以下に並べる Scheme 三つのドグマも捨てられなきゃ嘘だろう、ということでコメントしてみます。 Recursion (再帰) Scheme は何でも再帰です。 後で示すように、一見 iteration のような格好をしている構文ですら、 一旦末尾再帰に置き換えられてから実行されます。 つまり Scheme はその仕様に iteration を持ちません。 これが関数型プログラミングと関係の深い表示意味論からの要請であったことは容易に想像がつきます。 しかし、表示意味論が捨てられた今、反復制御構造に recursion
Download Git ;;; visual-basic-mode.el --- A mode for editing Visual Basic programs. ;; This is free software. ;; Modified version of Fred White's visual-basic-mode.el ;; Copyright (C) 1996 Fred White <fwhite@alum.mit.edu> ;; Copyright (C) 1998 Free Software Foundation, Inc. ;; (additions by Dave Love) ;; Copyright (C) 2008-2009 Free Software Foundation, Inc. ;; (additions by Randolph Fritz and Vin
一昨日ブログに書いたPicricというScheme処理系について、プログラミングしたときの方針とか、そのへんをまとめてみます。 Scheme(Lisp)の処理系は実装が簡単簡単と言われる割にその実装方法についてまとめられたサイトがほとんどなくて、僕自身調べるのにかなり苦労しました。もうこれ以上僕みたいな犠牲者を出したくありません。 とはいえいろいろ間違ってる箇所もあるかと思いますので気づいた方はコメントをおねがいします。 まずPicricについて。 実は昔々(今年春)NLispというものを作った。 Pythonで実装されたSchemeのサブセット。 継続が実装されていなかった。 今度こそは継続を!pythonからも脱脚して一人前になりたい! そんな動機で開発を始める。 名前の由来はピクリン酸。 ピクリン酸はそのやたら可愛い名前にも関わらず実はものすごい爆薬。 そういう「意外とすごい」インタ
【Emacs本を書きました】 anything.elは難しいという印象を持っている人がいるようです。 おそらく、導入しにくいのが原因ではないでしょうか。 anything.elを導入するには、変数anything-sourcesを設定する必要がありました。 しかし、これはもはや過去の話です。 Web検索というのは、ときおり古い情報にひっかかることがあります。 情報は鮮度が命です。 世界は刻一刻と変化しています。 正しい情報を得るには、一次情報に当たるのが最短距離です。 anything.elの一次情報は、開発者である僕のブログの最新記事が一次情報になります。 anything.elを検索したところ、古い情報にひっかあり、惑わされ、それでanything.elは難しいという印象を持たれるのは開発者として本意ではありません。 auto-install.elを導入するインターネットにあるLisp
back (技術評論社 Software Design誌 2000年 7月号 に掲載された、「Scheme への招待 〜 GNU標準のスクリプト言語入門」の 記事を加筆修正したものです *1) はじめに みなさんは Lisp をご存じでしょうか。Lisp は 1950年代後半*2に John McCarthy によって 開発されたプログラミング言語で、 おもに記号処理などの分野で今も利用されています。 Scheme は Lisp から派生した言語のひとつで、 Guy Lewis Steele Jr. および Gerald Jay Sussman によって 1975年に開発されました。Scheme はよく 「Lisp の方言」などと呼ばれますが、Lisp よりも簡単な仕様 で、それでいて複雑なプログラミングが可能なように設計されています。 どのプログラミング言語にも長所と短所がありますが、S
この文書は Oleg Kiselyov 氏による SXML revision 3.0 仕様書を勝手に翻訳したものです。 原著の最新版は http://okmij.org/ftp/Scheme/SXML.html にあります。 仕様として正式なのはあくまで原著です。 この文書には翻訳上のあやまりがあるかもしれません。 御自身の責任で御利用ください。 このページは SXML revision 3.0 の仕様を定める。 SXML は XML 文書の抽象構文木であり、 XML Infoset の S 式による具象表現でもある。 SXML は、一般的な木構造をしていることにより、 問い合わせ、変換用のコンパクトなコンビネーターライブラリを備えることができた。 SXML の仕様書の原本はそれ自体 SXML で書かれている。 この Web ページはその SXML コードを適当な「スタイルシート」で 変換
ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。 ((Rubyで) 書く (Lisp) インタプリタ) : melborne.github.com - Peter Norvigさんの((Pythonで) 書く (Lisp) インタプリタ) という記事(青木靖さん訳)がすごい 100行ほどのPythonコードで Schemeのインタプリタの基本部分を書いている Pythonのコードは見た目がRubyのコードとよく似ているので Rubyしか知らない僕でも何となく読める この記事を解読してRuby版Schemeインタプリタを書いたら インタプリタ Pyhon Scheme それからRubyのことも もう少し分かるようになるかもしれない こんなお得な勉強方法はないぞ きっと そんなわけで... 以下では上記記事を参照し
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く