;;; ;;; String.egi ;;; (define $string? (lambda [$x] (if (collection? x) (letrec {[$helper (lambda [$cs] (match cs (list something) {[ #t] [ (if (char? c) (helper rs) #f)]}))]} (helper x)) #f))) (define $intersperse (lambda [$in $ws] (foldl (lambda [$s1 $s2] {@s1 in s2}) {(car ws)} (cdr ws)))) (define $intercalate (compose intersperse concat)) (define $split (lambda [$in $ls] (match ls (list something) {[> {xs @(split in rs)}] [_ {ls}]}))) (define $split/m (lambda [$a $in $ls] (match ls (list a) {[> {xs @(split/m $a in rs)}] [_ {ls}]}))) (define $palindrome? (lambda [$str] (match str string {[(loop $i [1 $n] > (| >)) #t] [_ #f]})))