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 |

2008-03-25

DESTRUCTURING-BIND

| 09:13 | DESTRUCTURING-BIND - わだばLisperになる を含むブックマーク はてなブックマーク - DESTRUCTURING-BIND - わだばLisperになる

CARとCDRの組み合わせの代わりにDESTRUCTURING-BINDを使用するメリットを一つ発見。

DESTRUCTURING-BINDだと、ラムダリストキーワードのお蔭で

(car ()) => NIL
(car '(())) => NIL

の違いを判定することができる。

(destructuring-bind (&optional (x () car-win) . y) ()
  (list x y car-win))
=> (NIL NIL NIL)

(let ((lst () ))
  (let ((x (car lst))
        (y (cdr lst)))
    (list x y)))
=> (NIL NIL)