On 08/07/2012 12:52 PM, Prabhakar Ragde wrote:
Neil wrote:
(define (flatten lst)
(cond [(list? lst) (append* ((inst map (Listof A) (Listof* A))
flatten
lst))]
[else (list lst)]))
This version of flatten has quadratic worst-case running time. Is that
an issue? A linear-time implementation is possible. Eli has a nice post
somewhere about this. That would probably run into the same type issues
(no better, no worse). --PR
Ah! I'll have to have a look at my `list-flatten' and `vector-flatten'
that use a predicate to distinguish elements, to make sure they don't
have this problem. Thanks for pointing it out!
Neil ⊥
_________________________
Racket Developers list:
http://lists.racket-lang.org/dev