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-12-31

2009年を振り返る

| 23:36 | 2009年を振り返る - わだばLisperになる を含むブックマーク はてなブックマーク - 2009年を振り返る - わだばLisperになる

今年もまとめエントリーを書いてみたいと思います。

1月

  • みんなでLISPを勉強するブログ に参加
  • CL勉強会を30回目にして一旦終了としました。

しかし、また、オンライン勉強会やりたいです

2月

  • Shibuya.lisp TT#2
  • 第4回 Smiley hackathonに参加

LISP以外のコミュニティに初参加してみましたが、色々な視点が全然違うので非常に面白かったです。

3月

  • ひきこもり資金が尽きたため社会復帰
  • ILC2009のDavid Moon氏のPLOT発表に興奮していました。

今ではすっかり忘れていますw

  • Smiley HackathonにインスパイアされたSlimy Hackathonをオンラインで2日間/48時間開催しました

まったく期待してなかったのに何故か成果物が多かったです。不思議なものです。

4月

社会復帰直後のため、更新が滞っていました

その割には、Let Over Lambda読書会等には参加していたようです

5月

  • Lingr->Chatonへの移行記念に、CL勉強会をちょっと復活させてみようと思いましたが、企画倒れに終りました

私の気合いが足りなかったようですw

  • Common Lispの本はどれだけ日本で出版されているのかを適当に纒めてみましたが、何故か好評でした

6月

CiNiiでLISP系の論文を探して読んでそれをネタにエントリーを書いたりしていました

7月

  • 第5回Smiley Hackathon 参加
  • Shibuya.lisp TT#3

オンライン参加ではどういうことになるのか体験してみたり

8月

夏バテのためかエントリー激減

  • 第6回Smiley Hackathon 参加

9月

何故か、オレオレ構文を作る熱が復活し、妙な構文を量産しはじめていたようです。

10月

  • KMRCLを読み始めました
  • 日常のちょっとした作業を諦めずCLで書くように心掛けはじめました

11月

延々とKMRCLのエントリーが続きます

  • Shibuya.lisp TT#5
  • 数理システム LISPセミナー

LISPセミナーはまとめ記事を書こう書こうと思っていましたが、結局まとれられていません…。

12月

先月に引き続き延々とKMRCLのエントリーです。

  • LISP365とかいう毎日LISPの話題をお届けるという企画を実行することにしました

参加者のみなさんの面白いエントリーが読めたので良かったかなと思います。

まとめ

今年1年と、2年前(2007)の自分のブログを比べて眺めてみると、昔の方が今のエントリーより内容が偏っていて自分自身では面白いと感じます。

また、きちんとアイデアを纒めて書ききれてないせいか、書いたことを忘れてしまい、それを再発見してまたエントリーにしていることも多くなって来た気がしました。

来年は、もうちょっと偏った内容にできたら良いなあと思っています。

また、この2、3年で蓄積した情報がをまとめ切れていなかったり、立ち上げたもの中途半端になっているものが多くあるので来年は纒める年にしたいなとも思いました。

KMRCLを眺める (54) PLIST-ALIST

| 01:01 | KMRCLを眺める (54) PLIST-ALIST - わだばLisperになる を含むブックマーク はてなブックマーク - KMRCLを眺める (54) PLIST-ALIST - わだばLisperになる

今回は、KMRCLのlists.lisp中からPLIST-ALISTです。

前回のALIST-PLISTの逆というわけですね。

定義は、

(defun plist-alist (plist)
  (do ((alist '())
       (pl plist (cddr pl)))
      ((null pl) alist)
    (setq alist (acons (car pl) (cadr pl) alist))))

動作は…

(PLIST-ALIST '(A 1 B 2 C 3 D 4 E 5 F 6 G 7))
;⇒ ((G . 7) (F . 6) (E . 5) (D . 4) (C . 3) (B . 2) (A . 1))

あれ、多分期待の結果とは逆になってますよね。

最後にひっくり返さなければいけないんじゃないかと…。うっかりミスでしょうか。

(defun plist-alist (plist)
  (do ((alist '())
       (pl plist (cddr pl)))
      ((null pl) (nreverse alist)) ;逆転
    (setq alist (acons (car pl) (cadr pl) alist))))

ちなみにこういう系統の関数はLOOPだと簡潔に書けることが多いようです。

(DEFUN MY-PLIST-ALIST (PLIST)
  (LOOP :FOR (X Y) :ON PLIST :BY #'CDDR :COLLECT (CONS X Y)))

(MY-PLIST-ALIST '(A 1 B 2 C 3 D 4 E 5 F 6 G 7))
;⇒ ((A . 1) (B . 2) (C . 3) (D . 4) (E . 5) (F . 6) (G . 7))

何故、LOOPで書かないのかを考えてみるに、これまで眺めてきたコードからすると、Kevin Rosenberg氏もPaul Graham氏と同様にLOOPが嫌いなんじゃないかなあと推測しています…。