タグ

lispに関するsyohexのブックマーク (18)

  • defmacro - Writing A Lisp Interpreter In Haskell

    Introduction A while ago, after what now seems like eternity of flirting with Haskell articles and papers, I finally crossed the boundary between theory and practice and downloaded a Haskell compiler. I decided to do a field evaluation of the language by two means. I was going to solve a problem in a domain that Haskell is known to excel at followed by a real world problem1 that hasn't had much ex

  • Land of Lisp - ぱたへね

    漫画が独特の味を出しているCommon Lispの、Land of Lispを読みました。とても面白かったので紹介します。 の内容 ゲームを作りながら、Common Lispや関数型プログラミングについて学べるです。他の「ゲームで学ぶ・・・」系のと違うのは、既存のゲームをCommon Lispで実装していくので、できあがったゲームがそれなりに面白い事です。ゲームのI/Fは基CUIですが、一部の出力に関してはgraphvizやsvgを使ってグラフィカルに出力されていて面白くなっています。Common Lispの基的な文法以外にも、Functional programmingゲームAI、Webサーバー、Lazy Programmingと扱っているトピックは広いです。 基的なスタンスが「Lispサイコー」なので、そういうのが好きな人も十分楽しめると思います。 ゲームの紹介 いく

    Land of Lisp - ぱたへね
    syohex
    syohex 2012/03/29
  • モダンCommon Lisp: Common Lisp処理系のインストール

    同僚の深町さんと「モダンCommon Lisp」シリーズを初めることになりました。今回はCommon Lisp処理系のインストール方法について解説します。 どの処理系を使うか Common Lispには処理系が多数存在するため、プログラミングを初める前に、まずどの処理系を使うか決めなくてはなりません。商用ならAllegro CLでほぼ一択のようですが、お金がかかりますし、プロプライエタリソフトウェアですから、今回は候補から除外します。 無料で手に入る(フリーな)処理系としてはSBCLが有名です。多くのライブラリでサポートされている処理系であり、コンパイラの品質が高い(速いコードが生成される)という強みを持っていますが、スレッドサポートがかなり怪しいらしく(未確認)、またコンパイルに非常に時間がかかるという問題を持っています(開発のテンポに影響)。 SBCL以外には、例えばCLISPなどがあ

    syohex
    syohex 2011/03/08
    Lispの処理系について
  • Common Lispにおけるlambdaのあれこれ

    Common Lispプログラミングにおいて、lambdaは欠かすことのできない重要なパーツの一つですが、このlambdaにはいくつか知っておくべき慣習や決まり事があります。この記事では、lambdaに関する簡単な背景をふまえた上で、知っておきべき知識を簡潔にまとめようと思います。 ラムダ式 以下の形式のフォームをラムダ式と呼びます。ラムダ計算においては厳密にはラムダ抽象と呼ばれるのですが、Common Lispではラムダ式と呼びます。

    syohex
    syohex 2011/02/22
    lambdaについていろいろ
  • Lisp interpreter in 90 lines of C++

    I've enjoyed reading Peter Norvig's recent articles on Lisp. He implements a Scheme interpreter in 90 lines of Python in the first, and develops it further in the second. Just for fun I wondered if I could write one in C++. My goals would be 1. A Lisp interpreter that would complete Peter's Lis.py test cases correctly... 2. ...in no more than 90 lines of C++. Although I've been thinking about this

  • Modern Lisp Implementations in Pascal, Ruby, Java, Python and C#

    Pascal/Ruby/Java/Python/C# によるモダンな Lisp の小さな実装 2007.4.28 - 2010.10.1 (鈴) 第1回 L2 Lisp: 標準 Pascal によるモダンな Lisp の小さな実装 (1.1 版/Pascal) 2007.4.28 - 2007.5.18 静的スコープ, 末尾呼出しの最適化,マクロを備えた近代的な Lisp を,ISO 7185/JIS X 3008 の標準 Pascal で作成します。 プロトタイプ的な実装ですが,ガーベジコレクションも備えた,まとまったインタープリタです。 第2回 続 L2 Lisp: 従来の約3倍の速さの実現 (2.0 版/Pascal) 2007.6.1 ラムダ式の内部表現とマクロ展開の方法を改良してインタープリタを高速化します。 場合により約3倍の高速性能が得られます。 また,マクロの「変数捕捉」問

  • ((Rubyで) 書く (Lisp) インタプリタ) - hp12c

    ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。 ((Rubyで) 書く (Lisp) インタプリタ) : melborne.github.com - Peter Norvigさんの((Pythonで) 書く (Lisp) インタプリタ) という記事(青木靖さん訳)がすごい 100行ほどのPythonコードで Schemeのインタプリタの基部分を書いている Pythonのコードは見た目がRubyのコードとよく似ているので Rubyしか知らない僕でも何となく読める この記事を解読してRuby版Schemeインタプリタを書いたら インタプリタ Pyhon Scheme それからRubyのことも もう少し分かるようになるかもしれない こんなお得な勉強方法はないぞ きっと そんなわけで... 以下では上記記事を参照し

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

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

  • A micro-manual for LISP Implemented in C

    A micro-manual for LISP Implemented in C Recently I had to go through some code that uses the uIP TCP/IP stack, which reminded me, it has been a long time since I did something in C so I ended up spending the weekend implementing the 10 rules John McCarthy described in his paper A Micro-Manual for Lisp - not the whole Truth. This is a literate program, the code in this document is the executable s

    syohex
    syohex 2010/08/24
  • Island Life - 性能へのアプローチ

    About 南の島のプログラマ。 たまに役者。 Practical Schemeの主。 WiLiKi:Shiro 最近のエントリ 無限cxr高校受験Defense振り返ってみると2019年は色々学んで楽...覚えるより忘れる方が難しい(こともある)眼鏡のつると3DプリンタIris Klein Acting ClassSAG-AFTRA conservatory: Voice Acting創作活動って自分を晒け出さねばならないと...ループを使わずに1から100までMore... 最近のコメント shiro on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/14)1357 on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/01)ベアトリーチェ on ハイポハイポハイポのシューリンガン (2022/04/02)ベアトリーチ

    Island Life - 性能へのアプローチ
    syohex
    syohex 2010/06/28
  • Lisp in Small Piecesを読んだ - Homoiconic Days

    読み終わったのは3週間くらい前だけど、ゴールデンウィークで普段よりは時間があるので、読んだ感想など書いてみる。 Lisp in Small Pieces 作者: Christian Queinnec,Kathleen Callaway出版社/メーカー: Cambridge University Press発売日: 2003/12/04メディア: ペーパーバック購入: 2人 クリック: 61回この商品を含むブログ (4件) を見る Lisp in Small Pieces (LiSP) は、Lisp のインタプリタ/コンパイラの実装について説明したで、500ページ11章で12種類のインタプリタと2種類のコンパイラを紹介している。目次は以下のとおり。 The Basics of Interpretation Lisp, 1, 2, ... ω Escape & Return: Continu

    Lisp in Small Piecesを読んだ - Homoiconic Days
  • プログラマは皆どのようにしてLisperと化して行くのか?

    LispでWebサービスを作ればYahoo!に60億で買ってもらえると聞いて 実はCと同じくらい速いコードが書けると聞いて ルンバがLispで書かれていると聞いて リリカルなので 面接で笑われてカッとなった マンガでわかるらしいので iPhoneアプリが開発できると聞いて iアプリでLispが書けると聞いて 初めて手に入れたポケコンがAI-1000だった ハッカーと画家を読んでしまった 普通のやつらの上を行きたいので 舌足らずなので セグウェイを制御するコードが一日で書けるようになると聞いて How to become a Hackerを読んだ 専用の求人情報に応募できると聞いて プログラミングClojureを読んだ 初めての人のためのLispを読んだ 自前のLispで書かれた将棋が強かったので LispとPostScriptがあればハッピーになれると聞いて LOLの熱にあてられた On

    プログラマは皆どのようにしてLisperと化して行くのか?
  • JavaScript で Lisp の処理系 (と REPL) を実装してみた - mooz deceives you

    MiSPLi: http://mooz.github.com/mispli/ MiSPLi Emacs に出会ったのが三年前. それから一年程して elisp をいじり始めたので, 僕と Lisp との付き合いはかれこれ二年ほどになる. JavaScript を始めたのが一年前だから, 僕の中では C 言語に次いで付き合いの長い言語だ. 必要にかられたときにちょこちょこと elisp を書いて, 終わったらしばらく別れを告げる. そんな中途半端な付き合いを続けていた三月も終盤, 竹内先生の書かれた「初めての人のための LISP」を読み, その内容に深い感銘を受けた. Lisp を Lisp で実装する, といった章があり, これまで何となしに使っていた Lisp の中身を垣間見ることができたような, そんな気分になっていた. その時に, 「ひょっとしたら僕にも Lisp の処理系を実装でき

    JavaScript で Lisp の処理系 (と REPL) を実装してみた - mooz deceives you
  • Multi-Paradigm Language TAO

    国産 Lisp 専用マシン ELIS のマルチパラダイム言語 TAO について.共立出版 bit に連載したもの.

    syohex
    syohex 2010/02/19
    TAO
  • おとうさん、ぼくにもYコンビネータがわかりましたよ! - 2009-04-09 - きしだのはてな

    やっと、Yコンビネータが何を意味するものなのか、どういう意義があるのかがわかりました。 名前を使わず再帰ができますよ!というだけのものじゃなかったのですね。 まずλありき 関数の話をしたいのです。 そのとき、いちいち hoge(x) = x * 2 としてhogeを・・・、とか名前をつけて話を進めるのがめんどうなので、関数を値としてあらわすと便利ということで、λという値を定義するのです。 そうすると、上のhoge関数なんかはλ(x)(x*2)などとあらわせますが、引数をあらわすのに()を使うといろいろまぎらわしいので、 λx.x*2 のように表記します。 というのがλ。 このとき、λになにかわたされたら、引数としてあらわされる部分を単純におきかえます。 (λx.x*2)y とあったら、xの部分をyでおきかえて (λx.x*2)y → y * 2 となります。λの引数部分を与えられた引数で置

    おとうさん、ぼくにもYコンビネータがわかりましたよ! - 2009-04-09 - きしだのはてな
  • 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関連書籍
    syohex
    syohex 2010/02/16
    Lisp Schemeまとめ情報
  • EmacsにSLIMEを導入 - とりあえず暇だったし何となくはじめたブログ

    まずは, ファイルのダウンロード. 当然, 家からとってくる. 自分は, tgzのを取ってきた(なんか最近, tgzばっかだなあ. 昔は, zipばっかだったのに). んで解凍. $ tar xvzf slime-2.0.tgz慣れたもんだ. 次に, こいつをEmacsのロードパスの通ったところに置く. 自分の場合, ~/site-lisp/slimeとした. .emacsへの追記はこんな感じ. (setq load-path (cons (expand-file-name "~/site-lisp/slime") load-path)) そして, 最低限これだけ書いてやる. ;; Lisp用にSLIMEの設定 ;; lisp-mode ;(setq inferior-lisp-program "clisp") ; clisp用 (setq inferior-lisp-program "

    EmacsにSLIMEを導入 - とりあえず暇だったし何となくはじめたブログ
  • flatlineの日記跡地

    一応明記しておくと,数か月前から id:flalin に移行した. さらに,こないだの続きで書いた藤堂先生の分も上げておこう.こちらもかなりやっつけ. http://user.ecc.u-tokyo.ac.jp/~tt076524/compPhysB.pdf Monte Carlo計算のWang-Leeアルゴリズムについて Yan and de Pabloでは当は2つのアルゴリズムを提案してるんだが,1つ目がどう読んでも理解不能だったので省いた.著者ら自身も2つ目の方を褒めてるのは事実だし. 追記: そう言えば誤差に関する詳しい分析 arXiv:cond-mat/0506555*1 を見つけるだけ見つけたのだが,√(ln f)に反比例とか何とかよく分からないので,触れるのを忘れていた.まぁいいや. *1:http://jp.arxiv.org/abs/cond-mat/0506555 ま

    flatlineの日記跡地
  • 1