Common Lispを単に覚えても、結局テキスト処理程度で終わってしまいそうなので
もう少し遊べそうなターゲットとして、ウェブ関係のコードを書きながらCommono Lispを学んで行こうと思います。
ただ、ゼロから書いていたのでは、遊べるレベルになるまでとても長い時間がかかると思うので
Clackというフレームワーク的なアレを使わせてもらう事に。
Rackなんかと似たようなものって解説なので、超シンプルなウェブアプリフレームワークとして使えつつ、サーバと他のフレームワークとの糊のような役割もこなしてくれそうなライブラリなのかなと。勝手に想像してます。
とりあえず、サイトの指示のままQuickLisp経由でインストールして、Hello,Clack!表示までさせたけれども
たったこれだけなのにニヤニヤしてしまうくらい楽しい。
メインのドキュメントが英語なのが不安だけど、作者は日本人の方のようだし、いろいろ遊んでみようと思います。
なんかできたら、また報告でも。
#CavemanってClackと一緒に成り立ってるフレームワークもおもしろそう。ある程度Clackに慣れたらそちらにも。
3.05.2012
2.23.2012
読書。
最近タイトルを打ち込まないでポストしちゃう事が多いなぁ。
新しいBloggerのインタフェイスのせいじゃないだろうか。
おいとき。
読書。2月の3冊目かな?
ポール・グレアム著:ANSI Common Lispを読了。
1月頭ぐらいから読んでいて、最初の頃(5章ぐらいまで)は
章末の練習問題に取り組んでいたり、本文中のコードを試したりしていたけど、
一向に進まない感じになってしまって、まずは全体を読み通してみようかなと
スイッチを切り替えて読んでました。
14章〜17章の内容(著者自身進んだ内容と書いている)を除けば
プログラミングの初心者から取り組める内容だと思います。
14章から高度な内容を扱っているのを見ると
大学のテキストとして12〜13回の講義でもって
内容を終えられるように考えてあるのだろうと思います。
訳もとても丁寧で、役者自身、LISPをよく知っていて
テキストの原文が伝えんとするところを理解しているのだと感じられました。
違和感のある訳文もほんの1語か2語ぐらいですし
出版された次期を考えると、まったく気になりません。
章末には要約や豊富な練習問題も用意されていて
次はじっくり腰を据えて取り組みたいと思っているところです。
(先日、CONSについての理解のトピックを起こしたのも
このテキストの練習問題に取り組んでいる最中のことでした)
また、内容についても豊富な注釈と訳注が理解を助けてくれました。
そんな訳で結構ボリュームのある内容なのですが
日頃簡単なツールを書くぐらいならば、10章までやれば十分だと思います。
「LISPらしさ」とか「LISPとは」といった話にはあまり触れておらず
そちらを知るならばOn Lispのほうがいいだろうと思います。
(当然、そういった内容はこの本の本筋から外れているので、当然と言えば当然です)
色々とプログラミングの練習問題をLISPで解いてみたり
仕事でちょろっと時間が開いたらLISPのドキュメントを読んでみたりと
今年は年初の目標通り、LISPに触れて、LISPをきちんと使えるようになりたいです。
まずは全体を読み通せたので、今度は練習問題を含めて
じっくり腰を据えて取り組みたいと思います。
新しいBloggerのインタフェイスのせいじゃないだろうか。
おいとき。
読書。2月の3冊目かな?
ポール・グレアム著:ANSI Common Lispを読了。
1月頭ぐらいから読んでいて、最初の頃(5章ぐらいまで)は
章末の練習問題に取り組んでいたり、本文中のコードを試したりしていたけど、
一向に進まない感じになってしまって、まずは全体を読み通してみようかなと
スイッチを切り替えて読んでました。
14章〜17章の内容(著者自身進んだ内容と書いている)を除けば
プログラミングの初心者から取り組める内容だと思います。
14章から高度な内容を扱っているのを見ると
大学のテキストとして12〜13回の講義でもって
内容を終えられるように考えてあるのだろうと思います。
訳もとても丁寧で、役者自身、LISPをよく知っていて
テキストの原文が伝えんとするところを理解しているのだと感じられました。
違和感のある訳文もほんの1語か2語ぐらいですし
出版された次期を考えると、まったく気になりません。
章末には要約や豊富な練習問題も用意されていて
次はじっくり腰を据えて取り組みたいと思っているところです。
(先日、CONSについての理解のトピックを起こしたのも
このテキストの練習問題に取り組んでいる最中のことでした)
また、内容についても豊富な注釈と訳注が理解を助けてくれました。
そんな訳で結構ボリュームのある内容なのですが
日頃簡単なツールを書くぐらいならば、10章までやれば十分だと思います。
「LISPらしさ」とか「LISPとは」といった話にはあまり触れておらず
そちらを知るならばOn Lispのほうがいいだろうと思います。
(当然、そういった内容はこの本の本筋から外れているので、当然と言えば当然です)
色々とプログラミングの練習問題をLISPで解いてみたり
仕事でちょろっと時間が開いたらLISPのドキュメントを読んでみたりと
今年は年初の目標通り、LISPに触れて、LISPをきちんと使えるようになりたいです。
まずは全体を読み通せたので、今度は練習問題を含めて
じっくり腰を据えて取り組みたいと思います。
3.10.2010
ちくちくと環境整備。
openSUSE 11.2 にしたものの、やっぱりある程度は自分で整えないといけない。
以下、ざっと整えたもののメモ
Opera:YaSTから10.10が放り込めるのでこれを入れておく。
検索窓で日本語入力できないとか、日本語打ち込んでる最中にscimがOperaに対してだけ落ちるとか、相変わらずFlashとの相性が悪いとか色々問題はあるけど、一回使ったら離れられないよね。
導入後、Speed Dialやらログインの必要なサイトの設定やらをしておく。
MyPaint:最近お気に入りのコイツ。
オフィシャルでは存在しなかったが、こちらでアンオフィシャルなパッケージを見つけたので導入。
# ペンタブは、差し込むだけで普通に使えた。以前は、ペンタブの利用にちょっと苦労した気がしてたんだけどナァ。
Sylpheed:メーラをThunderbirdからSylpheedに乗り換えることに。理由は簡単。なんか3.x系の雷鳥が使いにくいから。
公式サイトを見たら、つい先日3.x系のSylpheedがリリースされてたってのもデカイ。
SUSEのレポジトリにSylpheedが見当たらなかったので、ソースから入れる。
glib2-develとかgtk2のdevelパッケージとか、多少追加してやる必要があったけど、普通に./configure make && sudo make installで行けた。
(起動時にlibsylpeed-plugin〜がみあたらないよ!ってなエラーが吐かれて起動できないときは、$LD_LIBRALY_PATHに/usr/local/libを追加してやればいいらしい。)
ビルドサービスでパッケージを見つけたので、それに乗り換える。
やっぱりRPMで管理できるといいよね。
スパムフィルタには、とりあえずYaSTにあったbogofilterを入れて指定してある。
今後不具合が出てきたら、日本語に完全対応していると噂のbsfilterも含めて検討しようと思う。
AmaroK:デフォルトではmp3やらwmaやらが再生できないので、いつもどおりpackmanを使う。
はじめに
http://ftp.uni-erlangen.de/pub/mirrors/packman/suse/11.2/
をYaSTでインストールソースに追加。(GPG鍵で怒られるけど認証しておく。)
続いて、YaSTでlibxine1-codecsとかw32codec-allとかを放り込む。(警告はYaSTの提案を受け入れて再試行。)
いつもどおり、これだけでAmaroKからmp3が再生できるようになった。
V2C:2ch専用ブラウザ。
tarボールを持ってきて適当に展開した後、binディレクトリにシンボリックリンクをはっておく。
いくつかパーミッションエラーで怒られたけど、適当に権限を与えてやって解決。
Anthy:顔文字辞書を入れる。
こちらから顔文字辞書をとってきて展開後、./install-shでインストール。
# 変換効率を向上させるパッチも配布されているけど、とりあえず見送り。
Skype:SUSE向けrpmパッケージが公式から配布されているので、それをゲットしてきて放り込む。
rpm -iUvh Skype〜なんてコマンド、何年かぶりに打ち込んだワ(笑)
zsh:ログインシェルをzshにして、.zshrcを持ってきて微調整。
ページャに使っていたlvが無いと怒られたので、普通にlessを使うことに。まだ日本語テキストをコンソールで出していないから分からないけど、多分問題ないと思う。
Emacs:openSUSEのemacsは、設定を.emacsではなく、.gnu-emacs-customに書くようになってるので、バックアップしてあった.emacsをリネームして微調整。
newLISP:公式サイトからtarボールを持ってきて、./configure; make && sudo make installする。
readlineを要求するから、そのdevelパッケージを放り込んでおくのを忘れずに。
とりあえずざっくりやったのはこんなところか。
SteelBank Common Lispも入れようと思ったけど、YaSTからは見つからなかった。
(LISPで見つかったのはCLISPのみ。)
LISPまわりの品揃えが悪いってどういうことだ。
それでも、ソースから構築したのはnewLISPとSylpheedのみ。(SteelBankが加わりそうだけど。)
この辺は、大手ディストリビューションならでは充実度といったところかな。
以下、ざっと整えたもののメモ
Opera:YaSTから10.10が放り込めるのでこれを入れておく。
検索窓で日本語入力できないとか、日本語打ち込んでる最中にscimがOperaに対してだけ落ちるとか、相変わらずFlashとの相性が悪いとか色々問題はあるけど、一回使ったら離れられないよね。
導入後、Speed Dialやらログインの必要なサイトの設定やらをしておく。
MyPaint:最近お気に入りのコイツ。
オフィシャルでは存在しなかったが、こちらでアンオフィシャルなパッケージを見つけたので導入。
# ペンタブは、差し込むだけで普通に使えた。以前は、ペンタブの利用にちょっと苦労した気がしてたんだけどナァ。
Sylpheed:メーラをThunderbirdからSylpheedに乗り換えることに。理由は簡単。なんか3.x系の雷鳥が使いにくいから。
公式サイトを見たら、つい先日3.x系のSylpheedがリリースされてたってのもデカイ。
glib2-develとかgtk2のdevelパッケージとか、多少追加してやる必要があったけど、普通に./configure make && sudo make installで行けた。
(起動時にlibsylpeed-plugin〜がみあたらないよ!ってなエラーが吐かれて起動できないときは、$LD_LIBRALY_PATHに/usr/local/libを追加してやればいいらしい。)
ビルドサービスでパッケージを見つけたので、それに乗り換える。
やっぱりRPMで管理できるといいよね。
スパムフィルタには、とりあえずYaSTにあったbogofilterを入れて指定してある。
今後不具合が出てきたら、日本語に完全対応していると噂のbsfilterも含めて検討しようと思う。
AmaroK:デフォルトではmp3やらwmaやらが再生できないので、いつもどおりpackmanを使う。
はじめに
http://ftp.uni-erlangen.de/pub/mirrors/packman/suse/11.2/
をYaSTでインストールソースに追加。(GPG鍵で怒られるけど認証しておく。)
続いて、YaSTでlibxine1-codecsとかw32codec-allとかを放り込む。(警告はYaSTの提案を受け入れて再試行。)
いつもどおり、これだけでAmaroKからmp3が再生できるようになった。
V2C:2ch専用ブラウザ。
tarボールを持ってきて適当に展開した後、binディレクトリにシンボリックリンクをはっておく。
いくつかパーミッションエラーで怒られたけど、適当に権限を与えてやって解決。
Anthy:顔文字辞書を入れる。
こちらから顔文字辞書をとってきて展開後、./install-shでインストール。
# 変換効率を向上させるパッチも配布されているけど、とりあえず見送り。
Skype:SUSE向けrpmパッケージが公式から配布されているので、それをゲットしてきて放り込む。
rpm -iUvh Skype〜なんてコマンド、何年かぶりに打ち込んだワ(笑)
zsh:ログインシェルをzshにして、.zshrcを持ってきて微調整。
ページャに使っていたlvが無いと怒られたので、普通にlessを使うことに。まだ日本語テキストをコンソールで出していないから分からないけど、多分問題ないと思う。
Emacs:openSUSEのemacsは、設定を.emacsではなく、.gnu-emacs-customに書くようになってるので、バックアップしてあった.emacsをリネームして微調整。
newLISP:公式サイトからtarボールを持ってきて、./configure; make && sudo make installする。
readlineを要求するから、そのdevelパッケージを放り込んでおくのを忘れずに。
とりあえずざっくりやったのはこんなところか。
SteelBank Common Lispも入れようと思ったけど、YaSTからは見つからなかった。
(LISPで見つかったのはCLISPのみ。)
LISPまわりの品揃えが悪いってどういうことだ。
それでも、ソースから構築したのはnewLISPとSylpheedのみ。(SteelBankが加わりそうだけど。)
この辺は、大手ディストリビューションならでは充実度といったところかな。
3.04.2010
最近のお気に入り。
イラストばっかり描いてるわけじゃないぞ!ってトコを見せようかと。
誰に?と聞かれると答えようがないんですが、画像は最近のお気に入り、newLISPです。
古くからあるLISP方言らしいんですが、恥ずかしながら最近知りました。
JavaベースのGUI環境が付属してたり、ライブラリが充実してて、スクリプト言語感覚でイロイロ記述できたり、lambdaの代わりにfnが使えたり、forループがあったりと、便利な側面を備えたLISP方言です。
反面、consセルが無いらしいとか、'(), nilは偽だけど、'()とnilは等価じゃないとか、学ぶ上で、若干???
なところもあるカワイイヤツです。
OSSなんですが、コミュニティが比較的活発で、これでもか!というぐらいドキュメントがそろっているのが何よりの魅力。
たぶん、入門レベルまでバッチリドキュメントを備えてて、マルチプラットフォームで活躍できるLISP方言って、そう多くないと思うので、これからLISPしようかなと思っている人にもお勧めです。
(ただし、ここから入門するとCommonLISPやSchemeへの乗り換えはきつそうです。)
日本語のドキュメントが無いのが、人に勧め辛い点かなと思いつつ。
何かと便利な方言なので、紹介しときます。
11.16.2008
Slimeを導入する
ふと思い立って、Slimeを導入する。
Hyperspecも併せて導入しようかと思ったけど、なんかうまくいかないので、今日のところはSlimeのみにしておく。
参考ページ:
その1
その2
やったことは
# apt-get install slime
→このときに、Lennyだと追加パケージが選択された
んで、.emacsに
を追加。
したら、M-x slimeでslimeモードが呼び出せる。
(私はcmuclを利用したけど、CLISPとかSBCLとかも行けるらしいよ)
起動がちょっと長いのが気になるけど、いろいろ便利だから使おうと思う。
Hyperspecも併せて導入しようかと思ったけど、なんかうまくいかないので、今日のところはSlimeのみにしておく。
参考ページ:
その1
その2
やったことは
# apt-get install slime
→このときに、Lennyだと追加パケージが選択された
んで、.emacsに
;;slime
(add-to-list 'load-path "/usr/share/emacs/site-lisp/slime/")
(add-hook 'lisp-mode-hook (lambda ()
(slime-mode t)
(show-paren-mode)))
(require 'slime)
(setq inferior-lisp-program "cmucl")
(slime-autodoc-mode)
を追加。
したら、M-x slimeでslimeモードが呼び出せる。
(私はcmuclを利用したけど、CLISPとかSBCLとかも行けるらしいよ)
起動がちょっと長いのが気になるけど、いろいろ便利だから使おうと思う。
登録:
投稿 (Atom)