タグ

lispに関するmangakojiのブックマーク (7)

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

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

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

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

  • Gaucheプログラミング

    mangakoji
    mangakoji 2008/06/24
    scheme色々入門ぽい
  • Handbook Prog : Scheme

    ■ 基操作 ● 起動と終了 実行は、評価したい式(S式)をそのまま入力し、最後に改行すればよい。 > (exit) ● プログラムの構成 プログラムは、defineによる変数および関数の定義を並べたものである。 各行の ; 以降はコメントになる。 プログラムのソースは、自由書式であり、改行を自由に入れてよい。 読みやすいプログラムを目指し、下記のように、 適切に改行を入れ、インデントする。 (define (fib n) (cond ( (= n 0) 0 ) ( (= n 1) 1 ) ( else (+ (fib (- n 1)) (fib (- n 2))) ) )) ● ソースの読込み ロードされたファイル中の式が順に実行される。ただし、評価値は表示されない。 フォルダの区切は、\ が特殊文字なので、エスケープして \\ とする。 > (load 'ファイル名) > (load

    mangakoji
    mangakoji 2008/06/24
    schemeの言語仕様
  • Karetta|Gaucheプログラミング(立読み版)|GaucheによるScheme入門

    Gaucheを実際に動かしながら、Scheme言語の基的な文法について学びましょう。Gauche特有であると明示した以外のことがらは他のScheme言語処理系にも共通です。 Scheme言語の文法について覚えることはあまり多くありません。そのすべては50ページほどのScheme言語の仕様書「Revised 5 Report on the Algorithmic Language (通称R5RS)」に書かれています。 予約語はありません すべては式です 式には基式と組み合わせ式があります 式の値を求めることを評価と言います 覚える必要がある構文は5つだけ define quote if set! lambda 他の言語と異なり、Scheme言語に予約語はありません。たとえば上記にあげたdefineをはじめとする5つの名前も再定義してしまうことが可能です。 define、quoteについて

    mangakoji
    mangakoji 2008/06/24
    schemeのことチョット。set! lambda define quote ifだけでok、ってconsとかは???
  • もうひとつの Scheme 入門

    勾配の緩やかな初心者向け Scheme 入門ページです。 コンピュータは使ったことがあるが、プログラミング経験があまりない人を想定しています。 Scheme の解説はすでに山ほど優れたものがありますが、あえて解説記事を書いてみました。 Scheme のような抽象的な話題は波長が合えばすんなりと理解できますが、あわないと全く理解できません。 他の解説を読んで今ひとつよく理解できなかった人は試しに読んでみてください。 この記事の目標はコンピュータ科学の教科書の決定版である SICP を読める程度の Scheme の知識を提供することです。 目次: 処理系のインストール Scheme を電卓代わりに使う リストを作ろう 関数を定義しよう 分岐 局所変数 繰り返し 高階関数 入出力 代入 文字、文字列 シンボル型 連想リスト、ハッシュ表 ベクトルと構造体 構文の定義 (マクロ) 継続 遅延評価 非

    mangakoji
    mangakoji 2008/06/24
    sheme入門
  • 【プログラミング】ニコニコLisp入門

    こんなものでプログラミング言語が学べると思ったら大間違いだぜ!!!!!   ニコスクリプトで書いたLispインタプリタです。前作「ニコ動でLisp(sm3452591)」と何も変わりません。とりあえず9分もあるから、いろんな式を評価できるよ。   処理を1回/0.5秒から2回/1秒に変更したから、表示が少しかっこ悪くなっておまけに重くなった。けど、色々事情があるから許してください。   (追記)ニコスクリプトの仕様変更のため、lambdaとdefunが動作しなくなりました。それ以外は大体動きます。   謎の作品一覧 mylist/4808991

    【プログラミング】ニコニコLisp入門
    mangakoji
    mangakoji 2008/05/30
    どういうことかと?
  • 1