(fn slice (list idx) (do (let list_len (len list)) (let elems (list)) (let i idx) (loop (do (if (>= i list_len) (break)) (push elems (at list i)) (+= i 1) )) (return elems) )) (fn slice_eq (str slice_idx substr) (do (let str_len (len str)) (let substr_len (len substr)) (let i 0) (loop (do (if (>= i substr_len) (return true)) (if (>= (+ slice_idx i) str_len) (return false)) (if (!= (at str (+ slice_idx i)) (at substr i)) (return false)) (+= i 1) )) (return true) )) (fn contains (text ch) (do (let text_len (len text)) (let i 0) (loop (do (if (>= i text_len) (break)) (if (== (at text i) ch) (do (return true) )) (+= i 1) )) (return false) )) (fn indent (depth) (do (let space "") (let i 0) (loop (do (if (>= i depth) (break)) (+= space " ") (+= i 1) )) (return space) ))