タグ

lispに関するWackyのブックマーク (60)

  • Common LispがWeb業界を駆逐するとき - Revenge of Lisp in Web

    Common Lispはこの世に存在する言語の中でストレスなくプログラムできる唯一の言語であるというのは周知の事実です(ですよね?)。にも関わらず、実際に使われる機会はそれほど多くはありません。僕自身、仕事で使うのは難しいと考えています。 たとえばこんなことを言われたとします。 「やあ深町くん。実は大急ぎでTwitterみたいなサービスをつくってほしいんだ。できれば1週間でね」 そうすれば僕はこう言うでしょう。仕方ない。Perlだ。少しの間Common Lispと別れを告げ、ひたすらCPANを検索しつづける日々を迎えます。(もしくは転職先を探しているでしょう) なぜCommon Lispではないのか。違いは決定的なライブラリの数と質の差です。CPANには考えうる限りのライブラリがあり、しかも多くにおいて複数の選択肢が存在します。 一方のCommon Lispはライブラリがあればラッキーです

    Wacky
    Wacky 2011/02/27
  • ((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の構文はすべてカッコ付きの前置記法であるリストを基とし

  • リリカル☆Lisp開発日記 » Blog Archive » ##のわりとどうでもいい話

    ※リストの循環は脳に悪影響を及ぼす可能性があります。 エントリを読むときは必ず(setq *print-circle* t)を利用して下さい。 <括弧を書かずに循環構造をつくろうとしたのがことの始まりでした> '#1='#1# => #1='#1# リーダマクロ ‘ を展開すると結果は、 #1=(quote #1#) になり、循環構造ができます。 しかし、CLISPでこれのcdrを取るとスタックオーバフローします。 (cdr '#1='#1#) *** - Program stack overflow. RESET ちなみに、SBCLだとちゃんと結果が表示されます。 (cdr '#1='#1#) => (#1='#1#) <ちゃんと!?> よくよく見ると、微妙におかしなことに気づきました。 #1=(quote #1#)は2個のコンスセルから構成されます。 しかし、(#1=’#1#)は3個

    Wacky
    Wacky 2010/06/11
  • ANSI Common Lisp の仕様書を HTML Help にした - てっく煮ブログ

    Amazon から On Lisp のも届き、On Lisp Web 版 と合わせて読み進めているのだけど、Common Lisp の知識がある前提で書かれていてつらい。こういうときは仕様書が頼り。Common Lisp の仕様書を探したら Franz Inc Product Documentation に発見。ANSI Specification のリンクをたどると ANSI Common Lisp に行き着く。まとめてダウンロードもできてありがたいんだけど、いかんせん生の HTML だと使い勝手が悪い。ということで、HTML Help(CHM)にしてみましたよっと。Alt-N→関数名→Enter で定義に行き着けて大変幸せ。読書効率があがりました。あとは理解していくだけ…。http://tech.nitoyon.com/misc/ansicl-chm.zip On Lisp作者: ポ

  • Google AppフレームワークGAEO、日本語ドキュメント登場 | エンタープライズ | マイコミジャーナル

    Yet another web framework on Google App Engine Googleの提供するクラウドコンピューティングプラットフォームGoogle App Engine。このプラットフォームで動作するアプリケーション開発用フレームワークにGoogle App Engine Oil (GAEO)がある。執筆現在での最新版は2008年年末にリリースされた0.2.1だ。 Google App Engine Oilのブログが報告するところによれば、doc-jp-gaeoにおいてGAEOの日語ドキュメントが公開された。すべてのドキュメントではないが、多くのドキュメントを日語で閲覧できる。翻訳は伊藤哲之輔氏によるもの。GAEO Documentationの日語版にあたるもので、GAEO Documentationの「日語」リンクをクリックすることでも閲覧できる。日語版

    Wacky
    Wacky 2009/01/24
    Google App Engine。このプラットフォームで動作するアプリケーション開発用フレームワークにGoogle App Engine Oil (GAEO)がある。
  • Gaucheでプログラミング

    Lispの一種であるScheme。いくつかある処理系の中でも気軽にスクリプトを書けるGaucheでLispの世界を体験してみよう(編集部) 今回は、Gaucheを初めて使ってみようという方に向けて、Gaucheのインストールと、簡単なプログラムを題材に、どうやってGauche(Lisp)流のプログラムを書いていくかを取り上げてみます。 Gaucheのインストール GaucheはApacheやRubyと同様にオープンソースのソフトウェアですので、自分でダウンロードしインストールする必要があります。 GaucheのWebサイトのダウンロードページから最新のソースを取得できます。現在のところサポートされているOSはUNIX系が中心で、Windowsではすべての機能を使うことができません。この連載でも、Mac OS Xを含むUNIX系のOSで動かす前提で進めていきます。 Gaucheのインストール

    Gaucheでプログラミング
    Wacky
    Wacky 2008/12/19
  • http://tips.lisp-users.org/common-lisp/index.cgi

    Wacky
    Wacky 2008/11/29
  • 凄い人見つけた (リリカル☆Lisp 開発日記)

    Lispのひび なんかね、13歳でLisp処理系作ってるらしいですよ。 私が13歳の頃はもぐらたたきを作るのが精一杯でしたよ。 それに引き換え、最近の若い人は凄いですね。 私もCで簡易Schemeインタプリタを作ったことがあるので、 返事がもらえるかは分かりませんが、気になったことを適当に書いておきますね。 * リーダはどうやって書いてるんだろう readを追加。数値アトムを読み込むことに成功。 80文字までのバッファでfgetsでstdinから読む。長すぎる場合、sskipが内部でバッファ切り替えなどもやるような仕組みでLispのと同じ。 (T216の現状) アトム読み込みのとき、isspace(..)の代わりに*.. == ' 'と書いていて間違いだった。改行とかも考慮するんだぁ。 後はリストを上手く読み込むように再帰構造を作るだけ。 (isspace) とのことですが、関

    Wacky
    Wacky 2008/09/01
  • Yahoo | Mail, Weather, Search, Politics, News, Finance, Sports & Videos

    50 people injured after a Boeing 787 drops sharply during a flight

    Yahoo | Mail, Weather, Search, Politics, News, Finance, Sports & Videos
    Wacky
    Wacky 2008/06/07
  • Gauche:Windows/VC++

    VC++用ポートについて。 過去: Gauche:Windows/VC++:log:detail_2005 Gauche:Windows/VC++:log:detail_2005_2 Gauche:Windows/VC++:log:old_2003 Gauche:Windows/VC++:log:old_2004 Gauche:Windows/VC++:log:old_2005 Gauche:Windows/VC++:log:old_2007 Shiro (2012/11/26 00:50:40 UTC): 現在、WindowsネイティブサポートはMinGWに一化しています (Gauche:Windows/MinGW参照)。VC++プロジェクトファイル等はソースツリーからは 削除 (Commit 43eb70774196 ) しましたが、リポジトリには残っているのでresurrectし

    Gauche:Windows/VC++
    Wacky
    Wacky 2008/04/19
    VC++でのコンパイルは ext/ 以下も含めて可能。ただしDebugビルドでしか確認してない
  • Arcに関する手短なチュートリアル:okshirai:So-net blog

    [これはArcに関する手短なチュートリアルである。プログラミングの経験はあ まりなく、Lispの経験はまったくない読者を想定している。したがって、Lisp に対するイントロダクションでもある。] http://www010.upp.so-net.ne.jp/okshirai/tut-j.txt

    Wacky
    Wacky 2008/03/25
  • Emacs Lisp のダメなところ - あどけない話

    Emacs Lisp をこよなく愛する僕の目から、Emacs Lisp がダメだと思うところをまとめておきます。 文化的な問題 Emacs Lisper の多くは、Lisp が好きで使っているのではなく、Emacs が好きだからしかたなく使っているのでしょう。当は C で書きたいのに、無理して Lisp を利用している感じです。 そのため、Emacs に付いてくる Emacs Lisp のコードは、Lisp らしくないものがほとんどです。単に C での発想を Lisp で表現しています。 これらのコードは、読みこなせないぐらい関数が大きく、副作用のある部分とない部分が分離されていません。また高階関数を用いて、データ構造を走査するコードと実際に仕事をするコードを分離するという意識も低いようです。 GoogleMapReduceという論文のお陰で、Lisp の写像関数(map)と畳込み

    Emacs Lisp のダメなところ - あどけない話
    Wacky
    Wacky 2008/02/08
    Google の MapReduceという論文のお陰で、Lisp の写像関数(map)と畳込み関数(reduce)が、関数型言語圏外の人からも注目されるようになりました。
  • 社会の片隅から、ひとりごと:楽天ブログ

    エラーにより、アクションを達成できませんでした。下記より再度ログインの上、改めてミッションに参加してください。

    社会の片隅から、ひとりごと:楽天ブログ
    Wacky
    Wacky 2008/02/05
  • まつもとゆきひろのハッカーズライフ:第11回 Let's Talk Lisp (1/2) - ITmedia エンタープライズ

    そのとおり。あまり使われていませんが、Lispには優れたところがたくさんあります。わたしは、ポール・グレアムほどのLispハッカーではありませんが、Lispプログラマーの端くれ*として、今回はその素晴らしいLispについて簡単に紹介してみようと思います。 Lispの歴史 Lispの歴史は古く、その誕生は1958年だといわれています。1958年といえば、まだほとんどのプログラミング言語が登場していない時期です。このころすでに存在していたプログラミング言語で生き残っているのは、FORTRAN(1954年)とCOBOL(1959年)くらいのものでしょう。 Lispがプログラミング言語として特異なのは、もともとプログラミング言語として設計されたものではなく、数学的な計算モデルとして設計されたことに原因があると考えます。Lispの設計者として知られるジョン・マッカーシー(John McCarthy)

    まつもとゆきひろのハッカーズライフ:第11回 Let's Talk Lisp (1/2) - ITmedia エンタープライズ
    Wacky
    Wacky 2008/01/29
  • 入門CommonLisp ~関数型4つの特徴とλ計算

    ソースコードの提供 弊社刊行書籍「入門CommonLisp ~関数型4つの特徴とλ計算(ISBN4-8399-2081-8)」で紹介しております、ソースコードを提供します。ZIP形式でアーカイブ化しておりますので、対応ソフトで展開してください。 cl.zip (11 KB) * 章ごとのフォルダにテキストファイルを収録しています。文字コードはShift-JISです。 *2 「.txt」ファイルは、対話環境などで実行できるテキストを掲載しました。各式を評価するときの参考としてください。 *3 必要に応じてロードできる関数ファイルを用意しています。 関連リンク 記載のURLリンクは、2006年10月現在のものです。 Lisp処理系 GCL (22ページ参照) GCL ソースコード(52ページ参照) CLISP (25ページ参照) CLISPダウンロード Emacs系エディタ xyzzy (21

    Wacky
    Wacky 2008/01/26
    弊社刊行書籍「入門CommonLisp ~関数型4つの特徴とλ計算(ISBN4-8399-2081-8)」で紹介しております、ソースコードを提供します。
  • わーい \(^o^)/ LispをPostScriptで書いたLispで書いたよー! (リリカル☆Lisp 開発日記)

    zickです。 最近、巷(*)ではLisp(Scheme?)を実装するのが流行っているようで。 その流れにのっとって私も変なものをつくってみました。 ***PostScriptで書いたlisp*** ソース 実行結果 名前はまだないのですが、仮にpslispと呼びます。 このpslispはPostScriptで書いたLispインタプリタです。 単に式を評価するだけではなく、その値を図示してくれる優れもの(?)です。 実は去年の4月ごろにほぼ完成していたんですが、 条件分岐などを加え、再帰が使えるようになりました。 ***pslispで書いたlisp*** ソース 実行結果 pslispで動かすためにエスケープ文字を付加し、改行を消しているためカオスなことになってます。 まあ、これだけ見てもなんのことやらといった感じですが、 自分で書いたlispインタプリタの上でさ

    Wacky
    Wacky 2008/01/24
  • LISPMEMO

    Emacs から SLIME を起動すると (http://lispuser.net/emacs/lisphacking.html , http://lispuser.net/commonlisp/clisp.html 参照) 、 CL-USER> というプロンプトが表示されていると思います。 CL-USER> ここに、プログラムを入力することで、 Lisp にプログラムを解釈させて結果を確認することができます。 さっそく Lisp にプログラムを実行させてみましょう。 CL-USER> (+ 1 2) 3 これは、 1 + 2 を計算させるプログラムです。 (+ 1 2) の意味は、関数 + パラメータとして 1 と 2 を渡す、という意味になります。 乗算を行いたい場合には関数 * を使用してみてください。 CL-USER> (* 3 4) 12 もちろん、式を入れ個にする事もできます

    Wacky
    Wacky 2008/01/20
  • LISPMEMO

    LISPUSERLISPMEMOLisp is a programmable programming language. -- John Foderaro 各方面で大絶賛の嵐。というより Lisp を叩くのが人気。 Lisp の不人気は相当なものである - http://www.rubyist.net/~matz/20070112.html Lispが大衆受けしない理由は、その表記法の非人間性、あるいは、慣習との齟齬に尽きると感じています。 - http://enbug.tdiary.net/20070118.html#p02 Lisp が敬遠されてる理由って、はっきりいって syntax だと思うなぁ - http://d.hatena.ne.jp/babie/20070118/1169119443 こうして不人気の再生産に入るのか? 追記:1/28 Shiro さんのところに素晴しいエ

    Wacky
    Wacky 2008/01/20
  • LISPMEMO

    (defpackage :charguess.cffi (:use :cl :cffi) (:export :guess)) (in-package :charguess.cffi) (load-foreign-library "/home/onjo/lisp/user/charguess/libcharguess/libcharguess.so") これにはいくつかやり方があって、FFI 経由で関数を呼び出す Lisp 関数を定義する方法と、 ;; パターン1: Lisp 関数を定義して使う (defcfun ("CharGuessInit" char-guess-init) :int) (defcfun ("GuessChardet" guess-chardet) :string (str (:pointer :uchar))) (defcfun ("CharGuessDone" ch

    Wacky
    Wacky 2008/01/20
    C のライブラリを FFI 経由で呼びたい、というネタがありましたので解答しておきます。