Lisp

SBCLに日本語関連のライブラリやGUIライブラリを導入してみた

最近Common Lispをちゃんと勉強しよう!という事でちょいちょいsbclで遊んでいます。 それで、asdfを利用して色々ライブラリを導入してみたので、そのメモです。 HTTPリクエストなら、drakma、html→S式の解析なら、cl-html-parse、とライブラリがかなり充実し…

string-equal

最近就活やらで忙しいのでゆっくりできるものをと考えて 超スローペースでCommon Lispをまた勉強してみることにした. んで, そのメモ. Emacs Lispだと (string-equal "fred" "Fred") ; nil nil. Common Lispだと(sbcl) (string-equal "fred" "Fred") ; t t. …

funcallとapply

このエントリに深い意味はなかったり. * (apply '+ '(1 2 3 4 5)) ; 15 * (funcall '+ '(1 2 3 4 5)) ; (1 2 3 4 5) 処理系はcmucl. たぶんDebianのapt-getで入れたもの. Emacsでやるとfuncallの方はエラー. sbclでやってもfuncallの方はエラー. gclでやって…

複数の展開候補を表示して補完する動的略語展開 (未完成)

新バージョン, そして, エントリ作成. http://d.hatena.ne.jp/khiker/20070817/emacs_dabbrev 今度は, 上記 URL で更新してく. まだ, 完全には, 完成してないけど, とりあえずアップしてみる. 今のまんまでも, 使えないことはない. というか, 自分は, 使って…

ANSI Common Lisp 読書メモ

コードのブロックを作る. progn 最後の式の結果を返す. block ブロックに名前がついたもの. return-from に脱出するブロックの名前と返す結果を与えることで脱出できる. tagbody いわゆる goto が使えるブロック. 途中で飛び出す必要があれば, block. それ以…

ANSI Common Lisp 読書メモ

前にも別の本で読んだ気がするけど, またメモ. 配列のはなしのこと. make-array 配列を作成. Common Lisp なら, 少くとも7次元まで大丈夫. 各次元, 少なくとも1023の要素が持てる. 2×3ならば, こんな感じ. nil で初期化. (setf arr (make-array '(2 3) :init…

ANSI Common Lisp 読書メモ

slime で C-c C-d h 使って, Hyperspec 見ながら調べた. もちろんブラウザは, w3m. 本当にメモだな. 今回のは. eql 引数が同じオブジェクトの場合にのみ真を返す. equal 引数が同じように表示される場合には基本的に真を返す. (eql (cons 'a nil) (cons 'a n…

On Lisp の日本語版が書籍になって出るって

情報元: ((Common Lisp) (Scheme) :Part 15)/ l30 On Lisp コンピュータ書籍専門ネット書店 cbook24 自分は, ダウンロードしてきて全部学校で印刷しちゃったんだけど, それと比べてなんか変わってんのかな. 買うかどうかは, とりあえず保留. 評判を聞いてか…

SBCLで実行可能なバイナリを作る

Google先生で検索しまくって見付けた. でも, はっきり言って実用性ないと思う. ネタにしかならない. 他に良い方法を知ってる人が居たら是非教えてください. とりあえず, 端末エミュレータ上からSBCLを起動する. ちなみに, rsbclってなってんのは, .zshrcで「…

shebangスクリプトを書く

ゆっくりSBCLのマニュアル読んでいって, その過程をメモして行こうと思う. まあ, この記事だけで終わる可能性大だけどwww 今日は, マニュアルの2.1.3, 2.4.2, 2.4.4.1の3つをざっと読んでみた. shebang(シェバング)というのは, よくPerlとかシェルスクリ…

EmacsにSLIMEを導入

まずは, ファイルのダウンロード. 当然, 本家からとってくる. 自分は, tgzのを取ってきた(なんか最近, tgzばっかだなあ. 昔は, zipばっかだったのに). んで解凍. $ tar xvzf slime-2.0.tgz慣れたもんだ. 次に, こいつをEmacsのロードパスの通ったところに置…

SBCL, Steel Bank Common Lispを家のLinuxに入れてみた

まずは, 本家からダウンロードしてきて, 展開. $ tar xvjf sbcl-1.0-x86-linux-binary.tar.bz2これで, 展開したディレクトリに, sbcl-1.0-x86-linuxというディレクトリが出来上がる. 次に, /usr/localディクトリにインストールをする. $ sudo sh install.sh…

色々情報収集. 上手いタイトルが思い浮かばない

色々情報集め中. なんかかなり楽しくなってきた. ただ日本語の情報は, そんなに多くないね. どっかで英語に触れる必要がある. 簡単に検索して情報を集めてみた. http://b.hatena.ne.jp/khiker/lisp/ 2chにも言ってみたけど, 処理系は色々あるみたいね. スレ…

Common Lisp勉強中・・・ (9)

本で言う第10章, その他の機能. 本は「やさしいLisp入門」. もう終わりだな. 局所関数. ;; 構文 (flet ((局所関数1 引数リスト1 局所関数定義1 ...) (局所関数2 引数リスト2 局所関数定義2 ...) ... (局所関数N 引数リストN 局所関数定義N ...)) 実行式) ;; …

Common Lisp勉強中・・・ (8)

本で言う第9章, 繰り返し. 本は, 「やさしいLisp入門」. Lispでは, 歴史的に繰り返し専用の制御機構ではなく, 再帰的な関数呼び出しの方が使われることが多い. 関数呼び出しの際には, 変数などの情報を保存するためにスタックを使用する. これには上限がある…

Common Lisp勉強中・・・ (7)

本で言う第8章, 比較と条件分岐. 本は, 「やさしいLisp入門」. 今回はそんなに面白くない. とりあえず, 構文だけまとめておく. ;; if文 (if 条件式 真なら実行 偽なら実行) ;; case文 ;; 「式」の結果とぞれぞれ「要素のリスト」の値がマッチするもののみが…

Common Lisp勉強中・・・ (6)

本で言う第7章, 関数と関数データ. 本は, 「やさしいLisp入門」. 関数の定義. ;; 一般的な関数定義 (defun 関数名 (引数 ...) 関数の定義) ;; レスト引数を用いた関数定義 (defun 関数名 (引数 ... ... &rest レスト引数) 関数の定義) ;; レスト引数の例 > (…

Common Lisp勉強中・・・ (5)

本で言う第6章, 配列と構造体, ハッシュテーブル. 本は, 「やさしいLisp入門」. 配列 昔は, リストだけでデータ構造のほとんどを処理できるから, 配列はなかった. でも, それでは記憶容量, 実行速度の面で不利が出る. そのため, 配列が導入された. リスト. …

Common Lisp勉強中・・・ (4)

本で言う第5章, シンボル, 文字データと文字列. 本は, 「やさしいLisp入門」. Lispは, プログラムとデータを厳密に区別することはない. データとして取り扱っていたリストをプログラムと見做しして実行したり, その逆をしたりできる. ちょうど昨日やった演習…

Common Lisp勉強中・・・ (3)

本で言う第4章, 数値の取り扱い. 本は, 「やさしいLisp入門」. ホントただのメモ. 数値の種類. 整数. 浮動小数. 分数. 複素数. など. 整数は, Lisp処理系の許す限り, 負数を含むどんな大きさの整数も誤差なく扱える. 一定の範囲内に収まる整数データを, 大き…

Common Lisp勉強中・・・ (2)

今日は, 本で言う第3章, リストとデータと関数. 本は, やさしいLisp入門. リスト. 含める各データは, 空白やタブ, 改行で区切って並べる. 括られたデータ1つ1つをリストの要素と言う. コンス. 要素の1つ1つを結びつける基本構造. 2つのデータの組みで構成さ…

Common Lisp勉強中・・・ (1)

やさしいLisp入門(書籍)を読んでのメモ. 本当にただのメモ. 変数の命名規則. アルファベットの大文字小文字を区別しない. リスト. データの種類を問わず, 個数制限なしに記録していける構造. 先頭のシングルクォートは, 続くリストがデータであることを示す.…

環境構築

ホントは, Emacs Lispの書き方の参考になる本が欲しかったんだけど, あまり種類が多くないことは知ってたから, だったら大元に手を出しちまえっちゅーことで Common Lisp をやることにした. まずは, gclのインストール. 私の環境は, Momonga Linux 3ことMiku…

Lispのページを探してみる

Lispの種類 Japan Lisp User Group: Resources: Lisp Implementations in Japan (Japanese)より. Common Lisp Scheme Emacs Lisp 大きくこの3つでいいのか?(いや悪いだろうけど) 参考:Scheme、Common Lisp、Emacs Lispの比較 Common Lisp Common Lisp M.H…