Hatena::Groupcadr

From The Darkside - Lisp実験室@Hatena このページをアンテナに追加 RSSフィード

2008-09-01

[][][]LispMとあとで読む20080901 03:28 LispMとあとで読む20080901 - From The Darkside - Lisp実験室@Hatena を含むブックマーク はてなブックマーク - LispMとあとで読む20080901 - From The Darkside - Lisp実験室@Hatena LispMとあとで読む20080901 - From The Darkside - Lisp実験室@Hatena のブックマークコメント

本当は8月中はも欠かさず更新したかったのに、精神的・肉体的に

夏バテ他でボロボロになってしまって、気がつけば9月・・・

しかも1日過ぎたし・・・(つд`)

自宅のノートPC及び、仕事のデスクトップPC(Win2K3&XP DE)上に

VMWarePlayerを導入してLinux環境を構築したので、ようやく以前の

CL勉強会@Lingrで主催のg000001さんに教えてもらったLispMの

エミュレータを動かすための準備が整った。

わしの勘違いで全て64ビット環境が必要なのかと思って途方に暮れて

いたけど、Symbolics社のエミュレータ以外は32ビット環境で動作OK

ということをWassrで教えてもらい、仕事の合間に有名どころのリンク

をいろいろと調べてみた。

調べてみると、Scheme実装のLispMとかもあるらしい。

最近、海外の大学のプロジェクトでHaskellOCaml等の関数型言語で

OSを実装して云々ってのは、LispMのような環境を目指していたりする

のかな?

って思ったりとか・・・

いろいろ実験するために、やっぱりノートのサイズは14~15インチは

欲しいかも・・・


☆あとで読む20080901

わだばLisperになる - Lispマシン情報リンク集

Nevermore - T1 Explorer | (E1)LispM emulator

Lipm-hackers (Lisp Machine Emulators and Hacking) Info Page

Re:Could somebody use SCSH,Scheme,or Lisp to create the "Lispm" archit

Bill Clementson's Blog:MIT Open Sources the LispM Code

Retrocomputing - MIT CADR Lisp Machines

Jaap Weel | Lisp machines

Lisp machine - Wikipedia

A Brief History of Lisp Machines

Lisp news for LispM

Symbolics Lisp Machine Museum

The Lisp Machine

LISP Information and Resources

comp.lang.lisp | Google Groups - Re:Lisp Machine keyboard usage

Symbolics - Wikipedia

Advogato:Blog for johnw

Lisp Machines:reddit.com

Lisp-based OSes

Movitz: A Common Lisp OS development platform

Patrick Collison >> blog >> Lisp Machines

Lispのひび

L1sp.org - a redirect service for Common Lisp documentation

Index of /pdf/ti/explorer

Albatross Vaporware - Jim's Web Page

Emergent Technologies Inc -- LMI K-Machine

2008-08-21

[][][][]Windows(HOST) + VirtualBox-1.6.4 + paldo-1.15 + sbcl-1.0.19 とあとで読む20080821 01:50 Windows(HOST) + VirtualBox-1.6.4 + paldo-1.15 + sbcl-1.0.19 とあとで読む20080821 - From The Darkside - Lisp実験室@Hatena を含むブックマーク はてなブックマーク - Windows(HOST) + VirtualBox-1.6.4 + paldo-1.15 + sbcl-1.0.19 とあとで読む20080821 - From The Darkside - Lisp実験室@Hatena Windows(HOST) + VirtualBox-1.6.4 + paldo-1.15 + sbcl-1.0.19 とあとで読む20080821 - From The Darkside - Lisp実験室@Hatena のブックマークコメント

主に自分用の環境構築メモ。

最近ふと、Common Lispで音楽関連のソフトやWebサービスを作りたいと

思い始め(まだそこまでのレベルじゃないけど)少し調べてみたりWassr

で天の声(quekさん)を聞いたりして試行錯誤している最中。

有名どころでは、OpenMusic、Common Music、Common Lisp Music

などがあり、動作に必要な処理系はSBCLさえあればいいというのが

分かった。

でも、OSの実績はLinuxなどUNIX系OSの情報しかなかったため、仕事で

使うPCも自宅のノートPCも、現在あるWindows環境を壊さないで動かせる

環境を構築するために、仮想ソフトVirtualBox上に、以前から試してみた

いと思っていたpaldo linuxsbcl-1.0.19をインストールし始めた。

その際、気づいた点は以下。

1.VirtualBoxの仮想HDと仮想PCは環境変数[HOST]に設定された

パスにデフォルトで「.VirtualBox\VDI」及び「.VirtualBox\Machine」ディレクトリ

を作成する。

2.Windowsホストで新規仮想マシンの作成を選ぶと表示されるリストに

OSタイプが固有名詞で存在してないLinux2.2, 2.4, 2.6系のものについ

てはGuestAdditionsツールを実質、インストールできない。

⇒共有ディレクトリではなく物理的なデータ受渡し手段(USBメモリや

オンラインストレージなど)が必要

3.起動するたびに、ユーザ登録ウィザードが表示される

⇒何のためのユーザ登録だよ?ただの飾り???

4.ホストのHDにGhostなどでイメージをバックアップしないと、Windows

起動のたびに作成した仮想HD及び仮想マシンがリストから削除され再構築

できない。

⇒実際に仮想HD及び仮想マシンがホストのローカルに存在するものを指定

してもリストに追加されない。

再起動のたびにリセットされてしまう。

5.VirtualBox上でサウンドを有効に設定しても音が鳴らない。

⇒何のための環境構築か分からない。(;´Д`)

※ちなみに仕事で使うPCはバックアップ用のOSイメージを作成できるので、

作業に進捗があるたびに上書き保存を行い、使うたびにOSイメージを戻す

ため上記4のような問題はまだ発生していない。

Windows起動のたびにリストから作成した仮想メモリと仮想マシンが

削除されると環境構築だけで無限ループに陥りテンション下がって、萎える。(;´Д`)

な訳で、せっかく昨日の朝までかかって構築してスナップショットまで

取った自宅ノートPCの仮想Linux環境のVirtualBoxを使用した方法は諦め

た。(つД`)

QEMUか実パーティションかVMWare的なことを考えないといかん。


☆あとで読む20080821

CLiki - CL-Emacs

CLiki - Climacs

CLiki - Hemlock

CLiki - Portable Hemlock

Lisp Computing Environment (LiCE)

CCRMA User's guides and FAQs

OpenMusic

Common Music

Features of Common Lisp

waspvm - Wasp Lisp Release

Wasp Lisp Developments

Ephemeral Security - Lisp - Mosquito Lisp: Easy To Run

waspvm - Building Wasp Lisp Under MinGW for Windows

2008-08-18

[][][] 12:58 2008-08-18 - From The Darkside - Lisp実験室@Hatena を含むブックマーク 2008-08-18 - From The Darkside - Lisp実験室@Hatena のブックマークコメント

夏季休暇明けに久々に更新です。(*´∀`)

今日は7/11の日記のMeadow3からsbcl+slimeを起動する件についてリベンジして

みました。

ちなみにやった作業は以下です。

1.Win32版sbcl-1.0.19を下記サイトからDL

http://ptymn.hopto.org/dev/sbcl-1.0.19.msi

2.slimeを下記サイトからDL

http://common-lisp.net/project/slime/#downloading

3.Meadow3のインストールに使うsetup-ja-3.00.5.exeを

下記サイトからDL

http://www.meadowy.org/meadow/dists/3.00/

4.3のsetup-ja-3.00.5.exeをインストールする任意のディレクトリを

指定して実行

※ちなみに私は「E:\meadow3」としました

5.1のsbcl-1.0.19.exeを4で指定したディレクトリ以下にセットアップ

※E:\meadow3\bin\sbcl-1019\

6.2のslimeを4で指定したディレクトリ以下にセットアップ

※E:\meadow3\site-lisp\slime

7.meadow3の[HOME]を設定

key:HOME value:E:\meadow3

8.「.emacs」にinferior-lisp-programを設定

;;inferior-lisp-program

(setq inferior-lisp-program "sbcl")

(add-to-list `load-path "[HOME]/bin/site-lisp/slime/")

(require 'slime)

(slime-setup)

9.Meadow.exeを実行し以下のコマンドの動作確認を行う

MeadowからSLIMEを使う

M-x(Alt + x) slime

SLIMEを使わずにsbclだけ使う

M-x(Alt + x) run-lisp


問題なくMeadow3からsbcl-1.0.19及びslimeを起動できた。

前回どうして起動できなかったかを考えてみたところ、load-pathの

指定にバックスラッシュ「`」じゃなくてシングルクォーテーション「'」

を使ったことが原因じゃないかと思う。

2008-08-12

[][]実践Common Lisp 第8~13章 22:03 実践Common Lisp 第8~13章 - From The Darkside - Lisp実験室@Hatena を含むブックマーク はてなブックマーク - 実践Common Lisp 第8~13章 - From The Darkside - Lisp実験室@Hatena 実践Common Lisp 第8~13章 - From The Darkside - Lisp実験室@Hatena のブックマークコメント

ようやく自宅のノートPCでもWin32版sbcl-1.0.19が動くようになった

ので、仕事中の隙間時間で無理な時は家でやればいいかと思っていたけど

仕事から帰ってくると夏バテと眼精疲労で簡単には事が運ばず、気がつく

と会社の夏期休暇に突入して現在に至る・・・

日々、反省点だらけで少し凹んでいます。(;´Д`)

では、各章の感想と特に自分的に重要と思った備忘録です。


第8章 マクロ:自分で定義しよう

実践的なマクロの定義の仕方及びテクニックが実例で取り上げられて

いますが、あまり使い慣れないので読みながらEmacsを動かすので

とても疲れました。

実践的な内容としては、On Lispに書かれている内容の方が読みやすい

のかもしれません。


第9章 実践:ユニットテストフレームワーク

小規模QAで仕事をしているのでテストツールを作るネタとしては、とても

タイムリーでした。

汎用的な基本の作りをマスターして、更に複雑な機能を追加して実践的な

ツールが作れるようになりたいものです。


第10章 数、文字、そして文字列

改めて数学に近い数値を取り扱えるのが凄いなぁと思った。

not equalの表記はHaskellと同じで「/=」

文字及び文字比較で大文字小文字の区別は比較演算を使うか、

ハイフンでアルファベットを繋ぐ。

(ex)文字の比較関数

・「/=」 CHAR/= CHAR-NOT-EQUAL

(ex)文字列の比較関数

・「=」 STRING= STRING-EQUAL


第11章 コレクション

・ベクタ

固定サイズのベクタ:Javaの配列に似ている

可変サイズのベクタ:PerlやRubyの配列、Pythonにおけるリスト、

JavaにおけるArrayListに似ている

ベクタに変更を加えるならMAKE-ARRAYを使い、要素の初期化には

:initial-element引数を渡す

(ex)(make-array 5 :initial-element nil)

ELT:elementの短縮形。整数のインデックスを使ってシーケンス中の

個々の要素にアクセスする

・シーケンス反復関数

SUBSTITUTE:アイテムが新しいアイテムで置き換えられたシーケンス

(ex)(substitute 10 1 #(1 2 1 2 3 1 2 3 4))

⇒#(10 2 10 2 3 10 2 3 4)

・ハッシュテーブル

生成にはMAKE-HASH-TABLEを使い、要素へのアクセスはGETHASH


第12章 リスト処理:やつらがLISPと呼ぶ理由

NCONC:APPENDのリサイクルバージョン


第13章 リストを越えて:コンスセルの別用途

リストのリストはC言語のポインタのポインタに似ていると思った。

・集合

ADJOIN:1つのアイテムと集合を表すリストを引数に取り、オリジナル

の集合に含まれる全アイテムと引数として与えたアイテムを含む集合

を表すリストを返す。

MEMBER,MEMBER-IF,MEMBER-IF-NOT:集合にあるアイテムが含まれて

いるかどうかテストする

INTERSECTION:2つのリストに共通に存在する要素全てを含むリストを返す

UNION:2つのリストからユニークな要素を1つずつ取り出したリストを返す

SET-DIFFERENCE:最初のリストに存在し2つ目のリストには存在しない

要素全てを含むリストを返す

SET-EXCLUSIVE-OR:2つのリストのどちらか一方にだけ存在し、両方に

は共通して存在しない要素を含むリストを返す。

・連想リスト(association list, alist)

キーと値とを対応させるデータ構造で、その要素はコンスセルになっている

リスト。

ASSOC:キーと連想リストを引数に取り、コンスセルのCARがキーと一致

するものがあれば最初のものを返し、なければNILを返す。

デフォルトのテストにはEQLを使う。

(ex)(assoc 'a '((a . 1) (b . 2) (c . 3)))

⇒(a . 1)

(ex)(assoc 'd '((a . 1) (b . 2) (c . 3)))

⇒NIL

(ex)連想リストの前にペアを追加する

(cons (cons 'new-key 'new-value) alist) or

(acons 'new-key 'new-value alist)

ASSOCで連想リストを検索するのに要する時間は、マッチするペアが

リストのどれくらい奥深くに潜んでいるかに依存する。

・属性リスト(property list, plist)

キーと値が交互に並んでいるため、構造的には普通のリスト。

柔軟性において連想リストに劣る。

基本的なルックアップを行う関数はGETFのみ。

GETF:属性リストとキーを引数に取り、対応する値を返すか、キーが

見つからない場合はNILを返すだけ。

テストには常にEQを使う。

数値や文字を属性リストのキーとして含めてはいけない。

2008-08-03

[][][]Emacsの背景色を黒くしたい 10:20 Emacsの背景色を黒くしたい - From The Darkside - Lisp実験室@Hatena を含むブックマーク はてなブックマーク - Emacsの背景色を黒くしたい - From The Darkside - Lisp実験室@Hatena Emacsの背景色を黒くしたい - From The Darkside - Lisp実験室@Hatena のブックマークコメント

夏バテしながら、実践Common Lispに載ってるコードを写経したり

理解が曖昧な点をノートにまとめたりしながら勉強している。

で、ずっと会社でも自宅でも目が疲れるからEmacsの背景色を黒く

したい!!!

と思っているけど設定に時間がかかるようなら、とりあえずサングラス

してコードを書いて余裕ができてからでいいや。

と思っているうちに、3週間ほど過ぎて行った。(;´Д`)

今も、実践Common Lispの8章の佳境まで来たから、あと少し我慢して

設定すればいいか・・・

とか思ったけど、さすがに疲れてきたから設定方法だけでもメモって

おこう。

ってか、(set-background-color "black")では背景色の設定はできる

けどslimeを起動できなかったよ。(つД`)



Emacsの背景色を黒くする

画面の背景色を黒くする - pimentの日記

color-theme.el - 佐藤伸吾(akio0911)のデジタルライフハック

おいぬま日報(不定期) - tokyo-emacsに参加してきました.........