Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2009-07-25

StumpWMの日々 (1)

| 14:46 | StumpWMの日々 (1) - わだばLisperになる を含むブックマーク はてなブックマーク - StumpWMの日々 (1) - わだばLisperになる

StumpWMとは

StumpWMとはCommon Lispで書かれたタイル型のウィンドウマネージャーです。

いつの間にやらUbuntuやDebianでは、パッケージでstumpwmというのが提供されるようになっていて、コマンド一発で導入できるようになっています。素晴らしい!

StumpWMをカスタマイズしたい

さて、StumpWMを使い初めて約2年になろうとしているのですが、最初の頃にちょっとカスタマイズした位で面倒になり、ずっとその頃の設定のまま使っていました。

しかし、普段からどうも使い難いなあというところが溜って来たので色々カスタマイズして遊んでみることにしてみました。

StumpWMを自分用にカスタマイズする

StumpWMでは、~/.stumpwmrcに設定記述することによって起動時に設定が読み込まれます。

  • 分割した画面の移動

デフォルトでは、(C-t 矢印キー)なのですが、手が矢印キーに移動するのは面倒なのでvi風にhjklに割付けてみました。

(define-key *root-map* (kbd "j") "move-focus down")
(define-key *root-map* (kbd "k") "move-focus up")
(define-key *root-map* (kbd "l") "move-focus right")
(define-key *root-map* (kbd "h") "move-focus left")

移動が面倒なためかウィンドウの分割機能も利用していなかったようなのですが、移動がスムースになったので以前より分割しては移動したり、ウィンドウを消したりするようになりました。どこがどう生活に影響してくるか分からないものです。

  • インプットウィンドウのキーバインド

デフォルトでは、コマンド入力の保管に(TAB)確定に(Return)という割付けなのですが、(TAB)も(Return)もあまり利用したくないので、(C-i)と(C-m)にもそれぞれ割り付けてみました。

また、文字単位での前方への削除も(C-h)でできるようにしました。(Backspace)もあまり使わない自分にはこれが便利です。

ついでに単語単位での前方削除も追加し、なんとなくインプットウィンドウも中央に出してみています。

これらのキーバインドは、*input-map*に格納されているようなので、これをいじればカスタマイズ可能です。

;; input windowを中央に出す。
(setq *input-window-gravity* :center)

(define-key *input-map* (kbd "C-i") 'input-complete-forward)
(define-key *input-map* (kbd "C-m") 'input-submit)
(define-key *input-map* (kbd "C-h") 'input-delete-backward-char)
(define-key *input-map* (kbd "M-C-h") 'input-backward-kill-word)
  • コマンド定義

コマンド定義はdefine-stumpwm-commandで以前から普通に行なっていますが、最近ではウェブアプリが多くなっているのでfirefoxを呼び出したりすることが多いかもしれません。

上記でコマンド入力が楽になったのでキーバインドに直接割り付けなくてもインプットウィンドウでの呼び出しが楽にできるようになり、沢山コマンドを作成して登録するようになりました。

(progn
  ;; LDR
  (define-stumpwm-command "ldr" ()
    (run-shell-command "/usr/bin/firefox \"http://reader.livedoor.com/reader/\"")))
  ;; gmail
...

という感じ。

まとめ

ちょっと工夫してみただけで随分使いやすくなりました。

これからも、ちょこちょこカスタマイズのエントリーを書いて行きたいと思っています。

2009-07-19

(SETF NTHCDR)問題

| 22:43 | (SETF NTHCDR)問題 - わだばLisperになる を含むブックマーク はてなブックマーク - (SETF NTHCDR)問題 - わだばLisperになる

(SETF NTHCDR) - kozima の日記 - cadr groupより(SETF NTHCDR)問題

そうなんですよね、nthcdrにsetfフォームがあっても良さそうなんですが、無いんですよね。

kozimaさん:

実際に作ってみようと考える人もそれなりにいると思うので、
探せばコードまたは問題点を指摘した文書が見つかるのではないかと思いますが

去年のNANRIさんのブログで問題提起があってそれからLingrのCommon Lisp部屋で話題になったので記念にログを貼ってみることにしました('-'*)

  • NANRIさん 2008-05-15T03:06:19+09:00

nthcdr のsetf expanderってどう書くんだろって思ったときに疑問に思ったのでした。

n=0のときどう処理させれば良いのか、分からなかった。

  • g000001 2008-05-15T03:08:29+09:00

なるほどー、自分は(setf (last foo) '(x))とかやっていつも怒られますねw

あれ、nthcdrはSBCLでも定義されていないのかー。

...略

  • NANRIさん 2008-05-15T03:14:56+09:00

n>0の時の処理は簡単なんですよね。

...略

  • NANRIさん 2008-05-15T03:16:50+09:00

や、あれであっているかどうかもホントのところはよく分からないのですが。

n=0の時の処理が、イメージできないというか。

  • g000001 2008-05-15T03:18:24+09:00

なるほど、自分勘違いしてましたw

0だとまんまのリストを返すんですよね

  • NANRIさん 2008-05-15T03:18:51+09:00

listを丸ごと置き換えてしまっても良いような気もするし、定義できないような気もして。

  • g000001 2008-05-15T03:19:08+09:00

確かに、どうやるんですかねw

丸ごと置き換えってことになるんでしょうか…。

  • NANRIさん 2008-05-15T03:20:17+09:00

まあ使わなくても他にやりようがあるので困らないんですけど。

...略

  • NANRIさん 2008-05-15T03:27:20+09:00

http://d.hatena.ne.jp/sumim/20060910/p1 setfの歴史で思い出したネタ。

意外なことに、アラン・ケイ発のアイデアなのだそうで

だそうです。

  • g000001 2008-05-15T03:28:16+09:00

リーダーで読み出して来た場所に書き込むっていうアイディアですねー。

  • NANRIさん 2008-05-15T03:30:53+09:00

nth と nthcdr の対応はそんなに変でもない気がしますが、0のときはcdrか?って感じで、変な感じしますね。

...

  • NANRIさん 2008-05-15T03:54:43+09:00

ん~、リスト全体を指しているポインタは変わっていないから、リスト操作はリスト操作なのか

なんか、混乱してきましたw

  • g000001 2008-05-15T03:55:12+09:00

そうですねw

rplacaだと中身だけかえられるかなと思って

rplacaの方が良いのかなと漠然と考えたんですが、厄介ですねw

  • 紆余曲折あってg000001が考えた(setf nthcdr)
(defsetf nthcdr (pos lst) (subst)
  (case pos
    (0 `(progn
          (rplaca ,lst (car ,subst))
          (rplacd ,lst (cdr ,subst))))
    (1 `(rplacd ,lst ,subst))
    (otherwise `(rplacd (nthcdr (1- ,pos) ,lst) ,subst))))

;; もしくは

(defun (setf nthcdr) (subst pos lst)
  (case pos
    (0 (progn
         (rplaca lst (car subst))
         (rplacd lst (cdr subst))))
    (1 (rplacd lst subst))
    (otherwise (rplacd (nthcdr (1- pos) lst) subst))))

大分経ってから再度話題に…

  • onjoさん 2008-07-26T21:49:49+09:00

あれ? (cdr (nthcdr ...)) か (car (nthcdr ...)) だからなくていいのでは?

nthcdrはconsセルを返すから、書き換えるのはcar か cdr => だから setf car と setf cdr があるからおk

当時のまとめ

なるほど、なるほど。確かにconsセルを返す関数があれば、その結果に(setf car)か(setf cdr)すれば、それでOKですよね…という流れでした。

2009-07-12

第5回Smiley Hackathon(仮)に参加してきました!

| 18:38 | 第5回Smiley Hackathon(仮)に参加してきました! - わだばLisperになる を含むブックマーク はてなブックマーク - 第5回Smiley Hackathon(仮)に参加してきました! - わだばLisperになる

昨日7/11日に、Smiley Hackathon(仮)に参戦してきました!

主催の id:acotie さん 会場提供の dwango さんありがとうございます。

前回に引き続き総勢、15、6名の参加で各自様々なテーマでもくもくとプログラミングされていたようです。

今回、自分は、CLのウェブフレームワークを色々いじろうかなと思っていたのですが、準備が間に合わなかったので、今回は、逆引きCLのコンディションのエントリを充実させようということで、株式会社数理システム 知識工学部さんのCommon Lispにおける例外処理 —— Condition Systemの活用(PDF)を延々と読んだりコード例を試したりしてました。

逆引きCLの項目として、ぱっとした例を書くのはなかなか難しそうですが、昨日考えたあたりから項目を増して行きたいです。

懇親会

自分は基本的に懇親会には参加せず、自分が運営側にまわったりしているShibuya.lispの懇親会にも1度も参加していなかったりする程なのですが、考えを改めて懇親会にも参加してみることにしました。

junichiroさんのサポセン話は、私もサポセン経験者だけにかなり面白かったです(笑)

Smiley Hackathonは、今後、月に1回位のペースで開催できるかもしれない、とのことでしたが、是非開催して欲しいです!

2009-07-10

「最悪なHello World」に挑戦2

| 02:36 | 「最悪なHello World」に挑戦2 - わだばLisperになる を含むブックマーク はてなブックマーク - 「最悪なHello World」に挑戦2 - わだばLisperになる

寝ようと思って目を閉じたらこれが浮んでしまったので記念エントリ

(defmacro left_parenthesis-latin_small_letter_p-latin_small_letter_r-latin_small_letter_i-latin_small_letter_n-latin_small_letter_t-space-quotation_mark-latin_capital_letter_h-latin_small_letter_e-latin_small_letter_l-latin_small_letter_l-latin_small_letter_o-comma-space-latin_capital_letter_w-latin_small_letter_o-latin_small_letter_r-latin_small_letter_l-latin_small_letter_d-exclamation_mark-quotation_mark-right_parenthesis (&whole whole)
  (read-from-string
   (map 'string #'name-char
        (ppcre:split "-" (symbol-name (car whole))))))

実行

(left_parenthesis-latin_small_letter_p-latin_small_letter_r-latin_small_letter_i-latin_small_letter_n-latin_small_letter_t-space-quotation_mark-latin_capital_letter_h-latin_small_letter_e-latin_small_letter_l-latin_small_letter_l-latin_small_letter_o-comma-space-latin_capital_letter_w-latin_small_letter_o-latin_small_letter_r-latin_small_letter_l-latin_small_letter_d-exclamation_mark-quotation_mark-right_parenthesis)
;-> "Hello, World!"
;=> "Hello, World!"

「最悪なHello World」に挑戦

| 01:11 | 「最悪なHello World」に挑戦 - わだばLisperになる を含むブックマーク はてなブックマーク - 「最悪なHello World」に挑戦 - わだばLisperになる

ときどきの雑記帖 (null)編さん経由 Not Found - Happy My Life

何をしたら最悪なのかなと考えつつぼんやり書いてみました。

(defmacro hello-world (&optional (string "Hello, World!")
                       &aux (char-names
                             '("GRAVE_ACCENT" "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_P"
                               "LATIN_SMALL_LETTER_R" "LATIN_SMALL_LETTER_O" "LATIN_SMALL_LETTER_G"
                               "LATIN_SMALL_LETTER_N" "Newline" "Space" "LEFT_PARENTHESIS"
                               "LATIN_SMALL_LETTER_D" "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_F"
                               "LATIN_SMALL_LETTER_U" "LATIN_SMALL_LETTER_N" "Space" "LATIN_SMALL_LETTER_P"
                               "LATIN_SMALL_LETTER_U" "LATIN_SMALL_LETTER_T" "LATIN_SMALL_LETTER_C"
                               "LATIN_SMALL_LETTER_H" "LATIN_SMALL_LETTER_A" "LATIN_SMALL_LETTER_R"
                               "HYPHEN-MINUS" "LATIN_SMALL_LETTER_M" "LATIN_SMALL_LETTER_A"
                               "LATIN_SMALL_LETTER_K" "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_R" "Space"
                               "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_C" "LATIN_SMALL_LETTER_H"
                               "LATIN_SMALL_LETTER_A" "LATIN_SMALL_LETTER_R" "RIGHT_PARENTHESIS" "Newline"
                               "Space" "Space" "Space" "Space" "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_L"
                               "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_T" "Space" "LEFT_PARENTHESIS"
                               "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_C" "LATIN_SMALL_LETTER_H"
                               "LATIN_SMALL_LETTER_A" "LATIN_SMALL_LETTER_R" "HYPHEN-MINUS"
                               "LATIN_SMALL_LETTER_N" "LATIN_SMALL_LETTER_A" "LATIN_SMALL_LETTER_M"
                               "LATIN_SMALL_LETTER_E" "Space" "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_C"
                               "LATIN_SMALL_LETTER_H" "LATIN_SMALL_LETTER_A" "LATIN_SMALL_LETTER_R"
                               "HYPHEN-MINUS" "LATIN_SMALL_LETTER_N" "LATIN_SMALL_LETTER_A"
                               "LATIN_SMALL_LETTER_M" "LATIN_SMALL_LETTER_E" "Space" "LATIN_SMALL_LETTER_C"
                               "LATIN_SMALL_LETTER_H" "LATIN_SMALL_LETTER_A" "LATIN_SMALL_LETTER_R"
                               "RIGHT_PARENTHESIS" "RIGHT_PARENTHESIS" "RIGHT_PARENTHESIS" "Newline" "Space"
                               "Space" "Space" "Space" "Space" "Space" "GRAVE_ACCENT" "LEFT_PARENTHESIS"
                               "LATIN_SMALL_LETTER_D" "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_F"
                               "LATIN_SMALL_LETTER_U" "LATIN_SMALL_LETTER_N" "Space" "COMMA"
                               "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_I" "LATIN_SMALL_LETTER_N"
                               "LATIN_SMALL_LETTER_T" "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_R"
                               "LATIN_SMALL_LETTER_N" "Space" "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_F"
                               "LATIN_SMALL_LETTER_O" "LATIN_SMALL_LETTER_R" "LATIN_SMALL_LETTER_M"
                               "LATIN_SMALL_LETTER_A" "LATIN_SMALL_LETTER_T" "Space" "LATIN_SMALL_LETTER_N"
                               "LATIN_SMALL_LETTER_I" "LATIN_SMALL_LETTER_L" "Space" "QUOTATION_MARK"
                               "LATIN_CAPITAL_LETTER_P" "LATIN_CAPITAL_LETTER_U" "LATIN_CAPITAL_LETTER_T"
                               "HYPHEN-MINUS" "TILDE" "TILDE" "LATIN_CAPITAL_LETTER_A" "QUOTATION_MARK"
                               "Space" "LATIN_SMALL_LETTER_C" "LATIN_SMALL_LETTER_H" "LATIN_SMALL_LETTER_A"
                               "LATIN_SMALL_LETTER_R" "HYPHEN-MINUS" "LATIN_SMALL_LETTER_N"
                               "LATIN_SMALL_LETTER_A" "LATIN_SMALL_LETTER_M" "LATIN_SMALL_LETTER_E"
                               "RIGHT_PARENTHESIS" "RIGHT_PARENTHESIS" "Space" "LEFT_PARENTHESIS"
                               "RIGHT_PARENTHESIS" "Newline" "Space" "Space" "Space" "Space" "Space" "Space"
                               "Space" "Space" "Space" "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_P"
                               "LATIN_SMALL_LETTER_R" "LATIN_SMALL_LETTER_I" "LATIN_SMALL_LETTER_N"
                               "LATIN_SMALL_LETTER_C" "Space" "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_N"
                               "LATIN_SMALL_LETTER_A" "LATIN_SMALL_LETTER_M" "LATIN_SMALL_LETTER_E"
                               "HYPHEN-MINUS" "LATIN_SMALL_LETTER_C" "LATIN_SMALL_LETTER_H"
                               "LATIN_SMALL_LETTER_A" "LATIN_SMALL_LETTER_R" "Space" "COMMA"
                               "LATIN_SMALL_LETTER_C" "LATIN_SMALL_LETTER_H" "LATIN_SMALL_LETTER_A"
                               "LATIN_SMALL_LETTER_R" "HYPHEN-MINUS" "LATIN_SMALL_LETTER_N"
                               "LATIN_SMALL_LETTER_A" "LATIN_SMALL_LETTER_M" "LATIN_SMALL_LETTER_E"
                               "RIGHT_PARENTHESIS" "RIGHT_PARENTHESIS" "RIGHT_PARENTHESIS"
                               "RIGHT_PARENTHESIS" "RIGHT_PARENTHESIS" "Newline" "Space" "Space"
                               "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_D" "LATIN_SMALL_LETTER_E"
                               "LATIN_SMALL_LETTER_F" "LATIN_SMALL_LETTER_U" "LATIN_SMALL_LETTER_N" "Space"
                               "COMMA" "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_I" "LATIN_SMALL_LETTER_N"
                               "LATIN_SMALL_LETTER_T" "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_R"
                               "LATIN_SMALL_LETTER_N" "Space" "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_F"
                               "LATIN_SMALL_LETTER_O" "LATIN_SMALL_LETTER_R" "LATIN_SMALL_LETTER_M"
                               "LATIN_SMALL_LETTER_A" "LATIN_SMALL_LETTER_T" "Space" "LATIN_SMALL_LETTER_N"
                               "LATIN_SMALL_LETTER_I" "LATIN_SMALL_LETTER_L" "Space" "QUOTATION_MARK" "TILDE"
                               "LATIN_CAPITAL_LETTER_A" "HYPHEN-MINUS" "LATIN_SMALL_LETTER_R"
                               "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_A" "LATIN_SMALL_LETTER_D"
                               "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_R" "QUOTATION_MARK" "Space"
                               "QUOTATION_MARK" "TILDE" "COLON" "ASTERISK" "TILDE" "LATIN_CAPITAL_LETTER_A"
                               "QUOTATION_MARK" "RIGHT_PARENTHESIS" "RIGHT_PARENTHESIS" "Space"
                               "LEFT_PARENTHESIS" "AMPERSAND" "LATIN_SMALL_LETTER_O" "LATIN_SMALL_LETTER_P"
                               "LATIN_SMALL_LETTER_T" "LATIN_SMALL_LETTER_I" "LATIN_SMALL_LETTER_O"
                               "LATIN_SMALL_LETTER_N" "LATIN_SMALL_LETTER_A" "LATIN_SMALL_LETTER_L" "Space"
                               "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_S" "LATIN_SMALL_LETTER_T"
                               "LATIN_SMALL_LETTER_R" "LATIN_SMALL_LETTER_I" "LATIN_SMALL_LETTER_N"
                               "LATIN_SMALL_LETTER_G" "Space" "QUOTATION_MARK" "TILDE" "COLON" "ASTERISK"
                               "TILDE" "LATIN_CAPITAL_LETTER_A" "QUOTATION_MARK" "RIGHT_PARENTHESIS"
                               "RIGHT_PARENTHESIS" "Newline" "Space" "Space" "Space" "Space"
                               "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_M" "LATIN_SMALL_LETTER_A"
                               "LATIN_SMALL_LETTER_P" "Space" "APOSTROPHE" "LATIN_SMALL_LETTER_L"
                               "LATIN_SMALL_LETTER_I" "LATIN_SMALL_LETTER_S" "LATIN_SMALL_LETTER_T" "Space"
                               "NUMBER_SIGN" "APOSTROPHE" "LATIN_SMALL_LETTER_P" "LATIN_SMALL_LETTER_U"
                               "LATIN_SMALL_LETTER_T" "LATIN_SMALL_LETTER_C" "LATIN_SMALL_LETTER_H"
                               "LATIN_SMALL_LETTER_A" "LATIN_SMALL_LETTER_R" "HYPHEN-MINUS"
                               "LATIN_SMALL_LETTER_M" "LATIN_SMALL_LETTER_A" "LATIN_SMALL_LETTER_K"
                               "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_R" "Space" "LATIN_SMALL_LETTER_S"
                               "LATIN_SMALL_LETTER_T" "LATIN_SMALL_LETTER_R" "LATIN_SMALL_LETTER_I"
                               "LATIN_SMALL_LETTER_N" "LATIN_SMALL_LETTER_G" "RIGHT_PARENTHESIS"
                               "RIGHT_PARENTHESIS" "Newline" "Space" "LEFT_PARENTHESIS"
                               "LATIN_SMALL_LETTER_D" "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_F"
                               "LATIN_SMALL_LETTER_U" "LATIN_SMALL_LETTER_N" "Space" "COMMA"
                               "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_I" "LATIN_SMALL_LETTER_N"
                               "LATIN_SMALL_LETTER_T" "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_R"
                               "LATIN_SMALL_LETTER_N" "Space" "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_F"
                               "LATIN_SMALL_LETTER_O" "LATIN_SMALL_LETTER_R" "LATIN_SMALL_LETTER_M"
                               "LATIN_SMALL_LETTER_A" "LATIN_SMALL_LETTER_T" "Space" "LATIN_SMALL_LETTER_N"
                               "LATIN_SMALL_LETTER_I" "LATIN_SMALL_LETTER_L" "Space" "QUOTATION_MARK" "TILDE"
                               "COLON" "ASTERISK" "TILDE" "LATIN_CAPITAL_LETTER_A" "HYPHEN-MINUS"
                               "LATIN_SMALL_LETTER_D" "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_F"
                               "LATIN_SMALL_LETTER_I" "LATIN_SMALL_LETTER_N" "LATIN_SMALL_LETTER_E"
                               "LATIN_SMALL_LETTER_R" "QUOTATION_MARK" "Space" "QUOTATION_MARK" "TILDE"
                               "COLON" "ASTERISK" "TILDE" "LATIN_CAPITAL_LETTER_A" "QUOTATION_MARK"
                               "RIGHT_PARENTHESIS" "RIGHT_PARENTHESIS" "Space" "LEFT_PARENTHESIS"
                               "LATIN_SMALL_LETTER_L" "LATIN_SMALL_LETTER_I" "LATIN_SMALL_LETTER_S"
                               "LATIN_SMALL_LETTER_T" "RIGHT_PARENTHESIS" "Newline" "Space" "Space"
                               "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_M" "LATIN_SMALL_LETTER_A"
                               "LATIN_SMALL_LETTER_P" "LATIN_SMALL_LETTER_C" "LATIN_SMALL_LETTER_A"
                               "LATIN_SMALL_LETTER_R" "Space" "NUMBER_SIGN" "APOSTROPHE"
                               "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_V" "LATIN_SMALL_LETTER_A"
                               "LATIN_SMALL_LETTER_L" "Space" "LATIN_SMALL_LETTER_L" "LATIN_SMALL_LETTER_I"
                               "LATIN_SMALL_LETTER_S" "LATIN_SMALL_LETTER_T" "RIGHT_PARENTHESIS"
                               "RIGHT_PARENTHESIS" "Newline" "Space" "LEFT_PARENTHESIS"
                               "LATIN_SMALL_LETTER_D" "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_F"
                               "LATIN_SMALL_LETTER_U" "LATIN_SMALL_LETTER_N" "Space" "COMMA"
                               "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_I" "LATIN_SMALL_LETTER_N"
                               "LATIN_SMALL_LETTER_T" "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_R"
                               "LATIN_SMALL_LETTER_N" "Space" "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_F"
                               "LATIN_SMALL_LETTER_O" "LATIN_SMALL_LETTER_R" "LATIN_SMALL_LETTER_M"
                               "LATIN_SMALL_LETTER_A" "LATIN_SMALL_LETTER_T" "Space" "LATIN_SMALL_LETTER_N"
                               "LATIN_SMALL_LETTER_I" "LATIN_SMALL_LETTER_L" "Space" "QUOTATION_MARK" "TILDE"
                               "COLON" "ASTERISK" "TILDE" "LATIN_CAPITAL_LETTER_A" "HYPHEN-MINUS"
                               "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_X" "LATIN_SMALL_LETTER_E"
                               "LATIN_SMALL_LETTER_C" "LATIN_SMALL_LETTER_U" "LATIN_SMALL_LETTER_T"
                               "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_R" "QUOTATION_MARK" "Space"
                               "QUOTATION_MARK" "TILDE" "COLON" "ASTERISK" "TILDE" "LATIN_CAPITAL_LETTER_A"
                               "QUOTATION_MARK" "RIGHT_PARENTHESIS" "RIGHT_PARENTHESIS" "Space"
                               "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_N" "LATIN_SMALL_LETTER_A"
                               "LATIN_SMALL_LETTER_M" "LATIN_SMALL_LETTER_E" "HYPHEN-MINUS"
                               "LATIN_SMALL_LETTER_L" "LATIN_SMALL_LETTER_I" "LATIN_SMALL_LETTER_S"
                               "LATIN_SMALL_LETTER_T" "RIGHT_PARENTHESIS" "Newline" "Space" "Space"
                               "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_M" "LATIN_SMALL_LETTER_A"
                               "LATIN_SMALL_LETTER_P" "Space" "LATIN_SMALL_LETTER_N" "LATIN_SMALL_LETTER_I"
                               "LATIN_SMALL_LETTER_L" "Space" "NUMBER_SIGN" "APOSTROPHE"
                               "LATIN_SMALL_LETTER_F" "LATIN_SMALL_LETTER_U" "LATIN_SMALL_LETTER_N"
                               "LATIN_SMALL_LETTER_C" "LATIN_SMALL_LETTER_A" "LATIN_SMALL_LETTER_L"
                               "LATIN_SMALL_LETTER_L" "Space" "LATIN_SMALL_LETTER_N" "LATIN_SMALL_LETTER_A"
                               "LATIN_SMALL_LETTER_M" "LATIN_SMALL_LETTER_E" "HYPHEN-MINUS"
                               "LATIN_SMALL_LETTER_L" "LATIN_SMALL_LETTER_I" "LATIN_SMALL_LETTER_S"
                               "LATIN_SMALL_LETTER_T" "RIGHT_PARENTHESIS" "RIGHT_PARENTHESIS" "Newline"
                               "Space" "LEFT_PARENTHESIS" "COMMA" "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_I"
                               "LATIN_SMALL_LETTER_N" "LATIN_SMALL_LETTER_T" "LATIN_SMALL_LETTER_E"
                               "LATIN_SMALL_LETTER_R" "LATIN_SMALL_LETTER_N" "Space" "LEFT_PARENTHESIS"
                               "LATIN_SMALL_LETTER_F" "LATIN_SMALL_LETTER_O" "LATIN_SMALL_LETTER_R"
                               "LATIN_SMALL_LETTER_M" "LATIN_SMALL_LETTER_A" "LATIN_SMALL_LETTER_T" "Space"
                               "LATIN_SMALL_LETTER_N" "LATIN_SMALL_LETTER_I" "LATIN_SMALL_LETTER_L" "Space"
                               "QUOTATION_MARK" "TILDE" "COLON" "ASTERISK" "TILDE" "LATIN_CAPITAL_LETTER_A"
                               "HYPHEN-MINUS" "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_X"
                               "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_C" "LATIN_SMALL_LETTER_U"
                               "LATIN_SMALL_LETTER_T" "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_R"
                               "QUOTATION_MARK" "Space" "QUOTATION_MARK" "TILDE" "COLON" "ASTERISK" "TILDE"
                               "LATIN_CAPITAL_LETTER_A" "QUOTATION_MARK" "RIGHT_PARENTHESIS"
                               "RIGHT_PARENTHESIS" "Newline" "Space" "Space" "Space" "LEFT_PARENTHESIS"
                               "COMMA" "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_I" "LATIN_SMALL_LETTER_N"
                               "LATIN_SMALL_LETTER_T" "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_R"
                               "LATIN_SMALL_LETTER_N" "Space" "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_F"
                               "LATIN_SMALL_LETTER_O" "LATIN_SMALL_LETTER_R" "LATIN_SMALL_LETTER_M"
                               "LATIN_SMALL_LETTER_A" "LATIN_SMALL_LETTER_T" "Space" "LATIN_SMALL_LETTER_N"
                               "LATIN_SMALL_LETTER_I" "LATIN_SMALL_LETTER_L" "Space" "QUOTATION_MARK" "TILDE"
                               "COLON" "ASTERISK" "TILDE" "LATIN_CAPITAL_LETTER_A" "HYPHEN-MINUS"
                               "LATIN_SMALL_LETTER_D" "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_F"
                               "LATIN_SMALL_LETTER_I" "LATIN_SMALL_LETTER_N" "LATIN_SMALL_LETTER_E"
                               "LATIN_SMALL_LETTER_R" "QUOTATION_MARK" "Space" "QUOTATION_MARK" "TILDE"
                               "COLON" "ASTERISK" "TILDE" "LATIN_CAPITAL_LETTER_A" "QUOTATION_MARK"
                               "RIGHT_PARENTHESIS" "RIGHT_PARENTHESIS" "Newline" "Space" "Space" "Space"
                               "Space" "Space" "LEFT_PARENTHESIS" "COMMA" "LEFT_PARENTHESIS"
                               "LATIN_SMALL_LETTER_I" "LATIN_SMALL_LETTER_N" "LATIN_SMALL_LETTER_T"
                               "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_R" "LATIN_SMALL_LETTER_N" "Space"
                               "LEFT_PARENTHESIS" "LATIN_SMALL_LETTER_F" "LATIN_SMALL_LETTER_O"
                               "LATIN_SMALL_LETTER_R" "LATIN_SMALL_LETTER_M" "LATIN_SMALL_LETTER_A"
                               "LATIN_SMALL_LETTER_T" "Space" "LATIN_SMALL_LETTER_N" "LATIN_SMALL_LETTER_I"
                               "LATIN_SMALL_LETTER_L" "Space" "QUOTATION_MARK" "TILDE" "COLON" "ASTERISK"
                               "TILDE" "LATIN_CAPITAL_LETTER_A" "HYPHEN-MINUS" "LATIN_SMALL_LETTER_R"
                               "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_A" "LATIN_SMALL_LETTER_D"
                               "LATIN_SMALL_LETTER_E" "LATIN_SMALL_LETTER_R" "QUOTATION_MARK" "Space"
                               "QUOTATION_MARK" "TILDE" "COLON" "ASTERISK" "TILDE" "LATIN_CAPITAL_LETTER_A"
                               "QUOTATION_MARK" "RIGHT_PARENTHESIS" "RIGHT_PARENTHESIS" "RIGHT_PARENTHESIS"
                               "RIGHT_PARENTHESIS" "RIGHT_PARENTHESIS" "RIGHT_PARENTHESIS")))
  (eval
   (read-from-string 
    (format nil (map 'string #'name-char char-names) string))))

実行例

(hello-world)
;-> Hello, World!

2009-07-09

祝 Let Over Lambda 邦訳出版!

| 22:16 | 祝 Let Over Lambda 邦訳出版! - わだばLisperになる を含むブックマーク はてなブックマーク - 祝 Let Over Lambda 邦訳出版! - わだばLisperになる

(び)さん@Chaton CL部屋:

こんにちわ
LOLの日本語版、オフィシャルには7/15発行ということになりました
が、ジュンク堂その他にはその前から並び始めるかも、とのことです
さっき、本が上がってきました
読書会参加して下さった方々、個別に見ていただいた方々、ありがとうございました

ついに来ました! 変態マクロの本である自称On Lispの続編本 Let Over Lamdaの邦訳が出版されるとのことです!

7/15がオフィシャルな出版日とのこと。

Amazon.co.jpでは、7/13発売となっていて予約も可能になっています。

自分は、早速予約しました! 楽しみです!

2009-07-04

shibuya.lisp TT#3 無事開催!

| 19:31 | shibuya.lisp TT#3 無事開催! - わだばLisperになる を含むブックマーク はてなブックマーク - shibuya.lisp TT#3 無事開催! - わだばLisperになる

本日企画されていた、shibuya.lisp TT#3が無事開催されました!

参加して頂いた、発表者のみなさま、観覧者の皆様ありがとうございました。

今回自分はustream経由で参加していましたが、ustream経由でも非常に面白かったです!

TT/LTの内容がどんどん高度になっていて、このままだとTT#4での発表に挑戦して頂ける方が少なくなりそうですが、ネタ的なものも大募集していきたいなと思いますし、Emacsや、Xyzzyで活躍してる方もShibuya.lispで是非発表して欲しいなと思いました。VimとLISPについても大募集したいです!