RosettaCodeData/Task/Look-and-say-sequence/Racket/look-and-say-sequence.rkt
Ingy döt Net 6f050a029e update
2013-06-05 21:47:54 +00:00

9 lines
268 B
Racket

#lang racket
(define (encode str)
(regexp-replace* #px"(.)\\1*" str (lambda (m c) (~a (string-length m) c))))
(define (look-and-say-sequence n)
(reverse (for/fold ([r '("1")]) ([n n]) (cons (encode (car r)) r))))
(for-each displayln (look-and-say-sequence 10))