タグ

lispに関するchuwbのブックマーク (20)

  • ((Pythonで) 書く (Lisp) インタプリタ)

    Peter Norvig / 青木靖 訳 このページには2つの目的がある。コンピュータ言語の実装について一般的な記述をすることと、Lispの方言であるSchemeのサブセットをPythonで実装する具体的な方法を示すことである。私はこのインタプリタをLispy (lis.py)と呼ぶ。何年か前に私はJavaとCommon LispでSchemeインタプリタを書く方法を示した。今回の目標は、アラン・ケイが「ソフトウェアのマクスウェル方程式」と呼んだところの簡潔さと取っつきやすさを可能な限り実現するということだ。 SchemeのサブセットLispy の構文と意味論 コンピュータ言語の多くは様々な構文的な決まり(キーワード、中置演算子、カッコ、演算子優先順、ドット記法、セミコロンなど)を持っているが、Lisp族言語の1つとして、Schemeの構文はすべてカッコ付きの前置記法であるリストを基とし

  • ((Pythonで) 書く ((さらに良い) Lisp) インタプリタ)

    ((Pythonで) 書く ((さらに良い) Lisp) インタプリタ) Peter Norvig / 青木靖 訳 前のエッセイでは、90行のPythonコードでシンプルなLispインタプリタを書く方法を示した(lis.py)。このエッセイでは、3倍込み入っているが、より完全なlispy.pyを実装しよう。それぞれの節で1つの機能追加を扱っている。 (1) 新しいデータ型 - 文字列、論理型、複素数、ポート Lispyへの新しいデータ型の追加は3つの部分からなる。データの内部表現、それを扱う手続き、読み書きのためのシンタックスだ。ここでは4つの型を追加する(入力ポート以外はPythonのネイティブ表現をそのまま使う)。 文字列 文字列リテラルはダブルクォーテーションで囲まれる。文字列の中で \n は改行を、\" はダブルクォーテーションを意味する。論理型  構文 #t と #f はTrue

  • Emacs Lisp プログラミング:

    This master menu first lists each chapter and index; then it lists every node in every chapter.

  • Amazon.co.jp: 初めての人のためのLISP 増補改訂版: 竹内郁雄: 本

    Amazon.co.jp: 初めての人のためのLISP 増補改訂版: 竹内郁雄: 本
  • http://rubikitch.com/に移転しました

  • Webで読めるLisp関連書籍

    2022 (2) ► 10月 (1) ► 2月 (1) ► 2021 (51) ► 11月 (2) ► 10月 (2) ► 9月 (4) ► 8月 (4) ► 7月 (4) ► 6月 (4) ► 5月 (3) ► 4月 (10) ► 3月 (7) ► 2月 (4) ► 1月 (7) ► 2020 (155) ► 12月 (7) ► 11月 (10) ► 10月 (8) ► 9月 (8) ► 8月 (11) ► 7月 (21) ► 6月 (19) ► 5月 (14) ► 4月 (20) ► 3月 (13) ► 2月 (10) ► 1月 (14) ► 2019 (293) ► 12月 (11) ► 11月 (12) ► 10月 (24) ► 9月 (29) ► 8月 (27) ► 7月 (36) ► 6月 (40) ► 5月 (24) ► 4月 (35) ► 3月 (42) ► 2月 (6

    Webで読めるLisp関連書籍
  • 『「Lisp脳」の謎に迫る』の舞台裏

    ドット対(1 . 2)は対であるがリストではない 空リストは対ではないがリストである 空でないリストは対でありかつリストである この事実から「リストはまた対である」を以下の通りに修正する必要があります。 空リストは対ではない 空でないリストは対である なぜ「配列」でなく対で並びを表現するのか? SchemeをはじめとするLisp言語では、なぜ「配列」でなく対で並びを表現するのでしょうか? 対で並びを表現すれば、いくらでも入れ子構造にすることができる 入れ子構造になった対は再帰的に処理することができる あらゆるデータ構造を(入れ子構造になった)対で表現できる 入れ子構造になった対でプログラムコードも表現できる これまで見てきたように、対はcons手続きでいくらでも入れ子構造にすることができます。また、入れ子構造になった対にcar、cdrを適用すればどんな要素も取り出すことができます。これは、

  • XML is not S-Expressions

    There exists a persistent meme that XML is just a new-fangled, verbose form of s-expressions. For example, "XML is little more than a notation for trees and for tree grammars, a verbose variant of Lisp S-expressions coupled with a poor man's BNF (Backus-Naur form)" and " a poor copy of sexprs." These people do not appreciate that s-expressions were simply not designed to solve the same pr

    chuwb
    chuwb 2009/12/27
  • not found

  • はてなブログ | 無料ブログを作成しよう

    新米と秋刀魚のわた焼き お刺身用の秋刀魚を買いました。1尾250円です 3枚におろして、秋刀魚のわたに酒、味醂、醤油で調味して1時間ほど漬け込み、グリルで焼きました 秋刀魚のわた焼き わたの、苦味が程よくマイルドに調味され、クセになる味わいです 艶やかな新米と一緒に 自家製お漬物 土…

    はてなブログ | 無料ブログを作成しよう
  • Life with Cygwin

    沖ソフトウェア株式会社は、沖通信システム株式会社および株式会社沖インフォテックと平成22年10月1日をもって合併いたしました。新会社名は、株式会社OKIソフトウェアとなります。3社が行っております事業は新会社にて従来通り継続いたします。

  • IBM Developer

  • ClojureがSTMとLISPをJVMにもたらす

    Clojure(リンク)はLISPファミリの言語のかなり新しいメンバであり、Javaプラットフォームで動作する。2007年に導入され、すで高い関心を集めている。ひとつの理由はClojureの並行処理へのアプローチであり、ソフトウェアトランザクショナルメモリ(STM)のコンセプトを踏まえている。 Stuart Halloway氏は「Programming Clojure」(リンク) (Pragmatic Programmersで公開されている)の著者であるが、このは現在ベータ版である。私達はStuart氏とClojureやSTM、ツール、さらにたくさんのことを話した。 InfoQ: Clojureは並行処理の支援にSTMを使用していますが、STMについて簡単に教えて下さい。 STMはもっと大きな話である、ミュータブルな状態のための明確なAPIの一部です。みなさんのコードを純粋な機能的でミュ

    ClojureがSTMとLISPをJVMにもたらす
  • Part4 Javaで作るオリジナル言語

    Part4では,Lisp(リスプ:List Processor)インタプリタをJava言語を使って作っていきます。Lispは非常に歴史が古く,様々な分野で利用されている言語です。しかし,皆さんの中にはLisp自体をよく知らないという方もいらっしゃるかもしれません。どんなものを作るかわからないままでは面白みも半減してしまいますから,まずはLispのごく基的な動作を紹介しましょう。 まずは簡単Lisp講座 Lispの質は,すべてがリスト(正確にはS式,詳細は後述)で表現されることにあります。リストは要素を順序付きで並べたもので,“(1 2 3 4)”のように要素の並びをカッコでくくって表記します。このリストの要素は1,2,3,4の四つです。 「すべてがリストで表現される」という言葉の通り,Lispではプログラムもこのようなリストとして表現します。Lisp処理系は,与えられたリストの一つ目の

    Part4 Javaで作るオリジナル言語
  • Parenscript

    Introduction Parenscript is a translator from an extended subset of Common Lisp to JavaScript. Parenscript code can run almost identically on both the browser (as JavaScript) and server (as Common Lisp). Parenscript code is treated the same way as Common Lisp code, making the full power of Lisp macros available for JavaScript. This provides a web development environment that is unmatched in its ab

  • Emacs で快適に Lisp / Scheme ソースを編集する

    Emacs には EmacsLisp のインタープリターが内蔵されている (正確には EmacsLisp の処理系の上に Emacs というエディターが構築されてる) ので、EmacsLisp のソースを編集しながら評価が可能。EmacsLisp 程強力ではないけれど、同じようことを Common Lisp (あるいは Scheme) でもやれる。 ※以下の説明は、Emacs 22 用のもの。Emacs 21 で同じことが出来るかは確かめてない。 Common Lisp の場合 まず、Emacs から呼び出す Common Lisp の処理系を .emacs で設定する。clisp を使うなら、こんな感じ。 (setq inferior-lisp-program "clisp") Lisp のソース・ファイルを開いたら、次のコマンドを実行。 M-x run-lisp すると、shell モ

  • Emacs Lisp のデータベース入門 - わからん

    概要 Emacs Lisp でデータを ".el ファイル" で保持する場合の扱いやすいデータ構造には、連想リスト、ベクタ型オブジェクトのハッシュテーブル、pure elisp のハッシュテーブル型オブジェクトのハッシュテーブル、clパッケージによるハッシュテーブル型オブジェクトのハッシュテーブルがあるようです。それぞれを少し触ってみました。あらかじめちょっとヒントを挙げておくと、文字列をキーにしたい場合は equal での比較を指定することです(僕がハマった)。 パターン1 連想リスト これは誰もが使いますね。基です。 ;; データベースの作成 (defvar db-a '(("key-a" . "val-a") ("key-b" . "val-b"))) ;; 確認 db-a => (("key-a" . "val-a") ("key-b" . "val-b")) ;; データの登録

  • マンガで分かるLisp(Manga Guide to Lisp)

    スポンジで虎を倒せるんだよ? (you can take down a tiger with a sponge, right?)

  • Common Lisp と 日本語 と 文字コード

    external-format の使い方がわかったところで、実用的には文字コードの判定処理が必要になる場合が多い。 external-format を知っただけでは、with-open-file の external-format に何を指定すればいいのか迷ってしまう。 で、いろいろ蘊蓄を語ろうと思ったのだが、ふと Gauche の文字コード判定処理を CL に移植して比較したところ 性能、精度とも私の手作りのものより断然よかったのでこっちを採用。 Gauche のソースの ext/charconv/guess.scm, ext/charconv/guess.c, ext/charconv/guesstab.c が日語エンコーディング判定処理だ。 guess.scm で状態表 guesstab.c を出力し、 C コンパイラで guess.c guesstab.c をコンパイルしてモジュ

  • M.Hiroi's Home Page / xyzzy Lisp Programming

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 1