24 lines
669 B
Plaintext
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)
|