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-05-26

cl-irc

| 13:15 | cl-irc - わだばLisperになる を含むブックマーク はてなブックマーク - cl-irc - わだばLisperになる

今回のライブラリ紹介は、IRCのBOTを作成するのに便利な、cl-ircです。

パッケージ名cl-irc
ClikiCLiki: cl-irc
ASDF-INSTALL

配布されているソースの中にマニュアルのURLを貼り付けてくれるBOTのサンプルが同梱されていて便利に使えます。

このbotは、

clhs let

のような発言があると、

http://www.lispworks.com/reference/HyperSpec/Body/s_let_l.htm

のようにURLを返してくれます。

自分は、irc.freenode.netの#Lisp_Scheme部屋にもたまに連れていったりしますが、常駐させていないため、割と必要なときにいなかったりして全然役に立っていません(笑)

pfcでL-99 (P08 連続する要素を圧縮)

| 11:57 | pfcでL-99 (P08 連続する要素を圧縮) - わだばLisperになる を含むブックマーク はてなブックマーク - pfcでL-99 (P08 連続する要素を圧縮) - わだばLisperになる

pfcでは、可変長引数がないので、andもCLでいうeveryのようなものになっているようです。

(compress '(a a a a b c c a a d e e e e))
;==>[a b c a d e]

(define (compress lst)
  (if (null? lst)
      ()
      ((if (and [(consp (tl lst)) (= (hd lst) (hd (tl lst)))])
           (lambda (x) x)
           (cons (hd lst)))
       (compress (tl lst)))))

pfcでL-99 (P07 リストの平坦化)

| 11:57 | pfcでL-99 (P07 リストの平坦化) - わだばLisperになる を含むブックマーク はてなブックマーク - pfcでL-99 (P07 リストの平坦化) - わだばLisperになる

なんだか無理矢理ですが、折角なのでカリー化してみました。

(flatten '((0 (1 ((((2 (((((3 (((4)))))))) 5))))) (6 (7 8) 9))))
;=> [0 1 2 3 4 5 6 7 8 9]

(define (flatten lst)
  (if (null? lst)
      ()
      ((if (atom (hd lst))
           (cons (hd lst))
           (++ (flatten (hd lst))))
       (flatten (tl lst)))))

ゲスト



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