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-02-15

ArcでL-99 (P11 連続する要素をランレングス圧縮する その2)

| 13:02 | ArcでL-99 (P11 連続する要素をランレングス圧縮する その2) - わだばLisperになる を含むブックマーク はてなブックマーク - ArcでL-99 (P11 連続する要素をランレングス圧縮する その2) - わだばLisperになる

前回は、

((4 a) (1 b) (2 c) (2 a) (1 d) (4 e))

という風に出力していましたが、今回は、

((4 a) b (2 c) (2 a) d (4 e))

のように出力せよ、との問題。1つの場合は、リストにしないで、アトム単体で表現するというわけですね。

ということで前回のを少し修正して終わり。

(def encode-modified (lst)
  ((afn (lst acc)
	(if no.lst
	    rev.acc
	    (self cdr.lst
		  (let n (len car.lst)
		    (cons (if (is 1 n) caar.lst `(,n ,caar.lst)) 
			  acc)))))
   pack.lst () ))

(encode-modified '(a a a a b c c a a d e e e e))
;=> ((4 a) b (2 c) (2 a) d (4 e))