flan/test/programs/dyn-char-string.flan

24 lines
669 B
Plaintext

;;;; A String, and a str made from one, crossing into dyn: the dyn text counts
;;;; characters and indexes by them, ASCII or not. A char literal appends to a
;;;; String as its code point.
(defn as-dyn [d] dyn d)
(defn main [] i32
(let [s (string-new "ab")
u (string-new "é")]
(append u \日)
(append u \😀)
(append u \!)
(let [a (as-dyn s)
d (as-dyn u)
e (as-dyn (str u))]
(println a (length a) (at a 1))
(println d (length d) (at d 1) (at d 3))
(println (slice d 1 3) (chars d))
(println e (length e) (at e 2) (= d e)))
(println (length u) (rune-count u))
(free s)
(free u))
0)