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-25

bit誌上でのTAO/ELISの連載「マルチパラダイム言語 TAO」公開!

| 00:27 | bit誌上でのTAO/ELISの連載「マルチパラダイム言語 TAO」公開! - わだばLisperになる を含むブックマーク はてなブックマーク - bit誌上でのTAO/ELISの連載「マルチパラダイム言語 TAO」公開! - わだばLisperになる

先日のShibuya.lisp TT#5でも竹内先生のカレンダーのデモでTAOが動く姿をみることができましたが、TAO/ELISの話になると必ずといって良い程話題にのぼる1988年のbit誌上におけるTAO/ELISの連載がnue.orgにて公開されました!

丸一年、十二回の連載ですが、マイクロプログラムに始まって、マルチユーザー環境でのLISPの実現まで非常に興味深い内容になっています。

個人的には、マイクロプログラミングの詳細や、deflogic-methodというLISPとSmalltalkとPrologの全部が混ってしまったような構文と、マルチユーザー環境での変数のスコープの取扱い等が特に面白いと感じました。

今も昔もLISPは処理系の実装者が多い言語ですが、処理系実装者には刺激になる内容ではないでしょうか!!

KMRCLを眺める (48) ALIST-ELEM-P

| 00:18 | KMRCLを眺める (48) ALIST-ELEM-P - わだばLisperになる を含むブックマーク はてなブックマーク - KMRCLを眺める (48) ALIST-ELEM-P - わだばLisperになる

今回は、KMRCLのlists.lisp中からALIST-ELEM-Pで、ここからalist、plist編に突入のようです。

名前からするに、alistの一要素かどうかを調べる述語っぽいですが、とりあえず定義をみてみると、

;; alists and plists

(defun alist-elem-p (elem)
  (and (consp elem) (atom (car elem)) (atom (cdr elem))))

となっています。

これだと値の部分がatomじゃないとalistの要素じゃないという感じなのですが、

(LIST (ALIST-ELEM-P 'A)
      (ALIST-ELEM-P '(A . B))
      (ALIST-ELEM-P '(A B))
      (ALIST-ELEM-P '(A))) ; = (A .  () )とも言える
;⇒ (NIL T NIL T)
((A . (B C) (D . E))) = ((A B C) (D . E)))

のように値にリストを格納してもalistじゃないかなと自分は思っていたのですが、どうなのでしょう。

HyperSpecを参照してみても特にCARもCDRもATOMである必要はないように思えましたが…。

ゲスト



トラックバック - http://cadr.g.hatena.ne.jp/g000001/20091225