diff --git a/scheme/cyclone/util.sld b/scheme/cyclone/util.sld index 358521f3..d26d2c87 100644 --- a/scheme/cyclone/util.sld +++ b/scheme/cyclone/util.sld @@ -40,6 +40,7 @@ gensym delete delete-duplicates + flatten list-index2 list-insert-at! list-prefix? @@ -103,6 +104,11 @@ (if (eq? tail new-tail) lis (cons x new-tail))))) (recur lis)) +(define (flatten x) + (cond ((null? x) '()) + ((pair? x) (append (flatten (car x)) (flatten (cdr x)))) + (else (list x)))) + ;; Insert obj at index k of list, increasing length of list by one. (define (list-insert-at! lis obj k) (cond