55 lines
1.0 KiB
Plaintext
55 lines
1.0 KiB
Plaintext
|
|
(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)
|
|
))
|
|
|