2009年01月29日01:35 by 刺身☆ブーメラン 今までに読んだ Lisp の本をいくつかあげてみる カテゴリ刺身☆ブーメラン いままでいくつか Lisp の本を読んできました。易しいものもあれば、難しいものもありました。自分の勉強の過程を整理するためにも、読んだことのある本を挙げてみます。 リスト遊び―Emacsで学ぶLispの世界 (ASCII SOFTWARE SCIENCE Language) 著者:山本 和彦 販売元:アスキー 発売日:2000-05 おすすめ度: クチコミを見る Mew (Emacs 上で動くメールクライアント) の作者である山本和彦さんの本です。この本はとてもわかりやすくて良い本でした。リストというデータ構造についてかみ砕いて説明してあり、括弧だらけでとても難しそうに見える Lisp に慣れ、恐怖感をなくすのにはぴったりでした。再帰も、この本を読むまで
最近Lispの連れション仲間を増やしたいので、いろんな初見の人に「Lispって知ってる?」と質問して回っています。 そこそこアンテナのある技術者ならLispというのがプログラミング言語の一派を意味しており、それが主に大量のカッコで構成されていることは知っているようなのですが、なんか拒否反応が多いんですよね。 拒否反応というのが、まあ、だいたい 「カッコが多すぎて気がおかしくなる」 「私の人生は大量のカッコに対応するには短すぎる」 「大学でやったけどカッコ死ね。」 みたいなHTML初心者がタグのネストに敗北したみたいな感想ですね…。 まあ、パッと見てそういいたくなる気持ちは分かるんですが、それ自体がよくあるLispに対する誤解と言わざるを得ないです。 事実、Lispプログラミングは大量のカッコを相手にするのですが、誰もカッコの個数なんて見ていません。 Lispのプログラムの構造を読むときは、
Lispの一種であるScheme。いくつかある処理系の中でも気軽にスクリプトを書けるGaucheでLispの世界を体験してみよう(編集部) 「Gaucheでメタプログラミング」と題して、これからGaucheを使ったプログラミングの連載を書かせていただきます吉田裕美です。よろしくお願いいたします。 Gaucheとは 今回の連載で取り上げるGaucheはハワイ在住の日本人ハッカー、川合史朗さんが作った、Lispの一種であるSchemeのオープンソース処理系です。 Gaucheの特徴は、PerlやRubyのように気軽に使える軽い処理系だということです。Perl同様に正規表現や文字列操作が行え、ちょっとしたツールの作成にも使えます。しかし、非常に強力なCommon Lisp風オブジェクトシステムを持ち、Lispならではのマクロに加え、Webやグラフィックスなどの豊富なライブラリも持っているので実用
Common Lispではパッケージによってコードをモジュールにまとめる. 初期のLisp方言にはoblistと呼ばれるシンボル表があり, システムが読み込んだシンボルの一覧を保持していた. シンボルがoblist内に持つエントリを通じてシステムはその値や属性リスト等を参照していた. oblistに含まれるシンボルはインターン(intern)されていると言われた. 最近のLisp方言はoblistの概念を複数のパッケージに分割した. 現在,シンボルは単にインターンされているのではなく,ある特定のパッケージにインターンされている. あるパッケージにインターンされたシンボルが他のパッケージで参照できるようにするには 明示的な宣言が必要なので(誤魔化す方法はあるが), パッケージはモジュール性を促進する. パッケージはLispオブジェクトの一種だ. 現在のパッケージは常にグローバル変数*pack
S式は人に優しいか Shiro: Lispの不人気の理由として筆頭に上げられるのが、括弧だらけの 独特の見た目。とっつきにくい、一般的な表記法と違っていてわかりにくい、 等々、様々なことが言われてきました。しかし、 S式を捨てたLispも開発されましたが 流行ったとはいい難く、Lispな人々はいまだに括弧に固執しているかのようです。 S式のメリットをLisperに尋ねれば、エディタがどうの、マクロがどうの、といった 回答が真っ先に返って来ると思うんですが、そういう理屈をいくら理解しても S式がダメな人がS式を好きになったりはしません。どうも、もっと根本的な 感覚に大きな隔たりがあるような気がします。非Lisperから理解しがたい、 Lisperの持つ感覚とはどんなものなんでしょうか。Lisp脳から見た世界は どんなものなのでしょうか。 構文木を人間が書く? S式は言ってみれば言語の構文木そ
「プログラマの実力」とは一体何を指すのだろう、とよく考えることがあります。特に、プログラミング雑誌の編集者としては、「プログラミングの初心者と中級者を分けているもの」に、とても興味があります。 中級者と見なされるには、様々なものが求められるでしょう。特定のプログラミング言語の文法を隅々まで把握していることかもしれませんし、最新のライブラリやツールを使いこなせることかもしれません。たしかに、こうした知識は、優れたソフトウエアを開発するうえで重要です。ただ、そうしたノウハウは、使用するプログラミング言語や開発環境が変わると役に立たなくなることもあります。 そこで、日経ソフトウエア2014年4月号で、「中級者に必要なものは何か」をテーマにした「初心者脱出の近道は? プログラミングの『壁』大攻略」という記事を執筆しました。この記事では、中級者に必要なものを「良い習慣」と位置付け、どのような習慣が必
Common LispというかSBCLにおいて、各種ライブラリのロードといえば ASDFが有名。 しかし、もっと簡単にライブラリのロードが出来るQuicklispというものを発見した。 入手は例えば、 wget http://beta.quicklisp.org/quicklisp.lisp とすればOK(curlでも良いが)。 ■インストール インストール自体は非常に簡単。 1. sbcl --load quicklisp.lispで、quicklispをロードしつつSBCLを起動。 2. (quicklisp-quickstart:install)でインストール。 以上。 次回以降のSBCL起動時に自動的にロードされるようにしたいなら、 (ql:add-to-init-file) としておけば、.sbclrcに設定が書き込まれる。 ライブラリの読み込みは、 (ql:quickload
このエントリはModern Common Lispの一部です。 Common Lispのライブラリを利用するのに、以前はASDF-Installを使っていました。しかし、ASDF-Installは外部のシェルコマンドに依存するためWindowsでの利用が面倒だったり、接続先のサーバが落ちていてダウンロードできなかったり、ダウンロードできたとしてもビルドできないといったことが多くありました。 これを解決するためにZach Beaneが開発したのがQuicklispです。現在BETA公開中で、いくつか制限事項はありますが、誰でも利用できるようになっています。 Quicklisp BETA セットアップ まずはQuicklisp自身をインストールします。以下のリンクからQuicklispをダウンロードしてください。 Quicklispをダウンロードする あなたのLisp処理系 (きっとSBCL以
S式でJavaScriptを書けるライブラリ Parenscript。全部S式じゃないと嫌だっていう欲張りな貴方にピッタリ!ゆるふわ括弧な愛されWEBアプリが作れます! 実際のところ、letter: Parenscript で jQuery を使う場合は chain をで見かけて興味はあったけど今まで使わなかった。ので、Hackathonの時に書いたJavascriptをParenscriptで書き直してみたのでした。 Hackathonで書いていた JavaScriptはこんな有様。 var x = 0; var y = 0; var dx = 1; var dy = 1; var img = new Image(); img.src = 'http://www.lisperati.com/lisplogo_alien_128.png'; setInterval('draw()', 5)
% Usage | ?-[-'azlisp.pl']. yes | ?-top_level. Welcom to Lisp World ver 1.1 lisp> (de append (x y)(cond ((eq x nil)y)(t(cons(car x)(append (cdr x) y))))) append lisp> (append '(1 2 3 4) '(5 6 7)) (1 2 3 4 5 6 7) lisp> (bye) t Exit From Lisp yes %%%%%%%%%%%%%%%%% %%% TOP LEVEL %%% %%%%%%%%%%%%%%%%% top_level :- lisp(user). lisp(See) :- see(See), prompt(P,P),write('Welcom to Lisp World ver 1.1'),nl,
Land of Lisp...the music video! If you like this video, you'll love "Land of Lisp" the book: http://nostarch.com/lisp.htm
apply と reduce と交換可能な場合にどちらを使うかは,直感で決めればいいと思います. #mitori_clj での議論Clojure 入門者向け勉強会 #mitori_clj で分担して Project Euler の問題を題材にしているのですが, 最初の Problem 1 から参加者コメントが多数寄せられ, 期待していたより面白い勉強会になっています. そんなコメントの中に, 可変長引数を取ることのできる関数に reduce と apply のどちらを使うかは悩みますね。 とか, apply + か reduce + かは, 宗教戦争になりかねないので, とか, …敢えて宗教戦争に参加すると :-), この場合は apply + の方が抽象的で良いと思います. とかといった議論がありました. Project Euler Problem 1さて,どうしてこのような議論になった
これは、Lisp Advent Calendar 2013 のDEC/05 です。 1981年だか82年だか、僕の居た大学のコンピュータクラブで、Lispを作るのが流行った。 5人ぐらいで、バラバラに オレオレLisp を作った。 Lispというものは、readerがもっとも難しいと思う。 昔風の eval は、すぐにできる気がする。 gcは、なかなかバグが取れない。C言語で書くと、Cのローカル変数や、Cのスタックに生きてるconsへのポインタが乗るが、そこはスキャンできなかったりするのが、主な原因だろう。 当時、あたくしは、BASICでLispを書いていた。 8bit機である。私は6809@1MHz の載ったBASIC Master Level3 を使っていた。 RAMは、8~48KBytes ぐらいの機械が普通だった。 BASIC master Level3は、30万円ぐらいして、5i
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く