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 |

2010-09-23

KEYで再帰的に自分を呼ぶ

| 20:34 | KEYで再帰的に自分を呼ぶ - わだばLisperになる を含むブックマーク はてなブックマーク - KEYで再帰的に自分を呼ぶ - わだばLisperになる

(MYSUM '(1 (2 ((3) 4)) (5 6 7) 8 9 0))
;⇒ 45

こういうのを考える場合に、FLATTENして、(APPLY #'+)かなとも思うのですが、

(DEFUN MYSUM (TREE)
  (REDUCE #'+ TREE :KEY (LAMBDA (X)
                          (IF (CONSP X) (MYSUM X) X))))

こういうのはどうでしょう。

もっと汎用的にして、

(DEFUN KEY* (FN)
  (LAMBDA (X)
    (IF (CONSP X) (FUNCALL FN X) X)))

(DEFUN MYSUM (TREE)
  (REDUCE #'+ TREE :KEY (KEY* #'MYSUM)))

という風にしたら、REDUCE以外にも使えて便利!!

…と思ったのですが、そうでもありませんでした。

数理システム Common Lisp セミナ 2010-09-21 (2)

| 15:44 | 数理システム Common Lisp セミナ 2010-09-21 (2) - わだばLisperになる を含むブックマーク はてなブックマーク - 数理システム Common Lisp セミナ 2010-09-21 (2) - わだばLisperになる

今回の数理システム Common Lisp セミナには竹内郁雄先生が参加者として参加されていました。

休憩等の合間で、皆でお話を伺う機会があったのでメモ

今、取り掛かっているx86アーキテクチャ上のLISP処理系について

プリミティブな部品に分解していって、下層レイヤーのLISP処理系を提供したい。

TAO/SILENTでは、TAOは、SILENT(LISPマシン)の機械語という位置付けだった。

こういう下層レイヤーのLISP処理系の上に皆が好きに処理系を作ってもらえたら面白いだろうなと思っている。

他にも色々あったのですが、メモしてなかったのでエントリーできるところまでまとめられませんでした…。

ゲスト



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