some pure-ludus string manipulation testing

This commit is contained in:
Scott Richmond 2024-06-15 11:58:30 -04:00
parent 223823ea68
commit aba77569ac

View File

@ -49,15 +49,37 @@
(set (out :draw) (post :draw)) (set (out :draw) (post :draw))
(-> out j/encode string)) (-> out j/encode string))
(comment # (comment
# (do (do
(def source ` (def source `
match :foo with { fn strip_punctuation {
:bar -> :baz ("{x},{y}") -> strip_punctuation ("{x}{y}")
:baz -> :quux ("{x}.{y}") -> strip_punctuation ("{x}{y}")
"thing {foo}" -> "worste" ("{x};{y}") -> strip_punctuation ("{x}{y}")
42 -> 23 ("{x}:{y}") -> strip_punctuation ("{x}{y}")
("{x}?{y}") -> strip_punctuation ("{x}{y}")
("{x}!{y}") -> strip_punctuation ("{x}{y}")
(x) -> x
} }
fn trim_left {
(" {x}") -> trim_left ("{x}")
("\n{x}") -> trim_left ("{x}")
("\t{x}") -> trim_left ("{x}")
(x) -> x
}
fn trim_right {
("{x} ") -> trim_right ("{x}")
("{x}\n") -> trim_right ("{x}")
("{x}\t") -> trim_right ("{x}")
(x) -> x
}
fn trim (x) -> do x > trim_left > trim_right
trim_left ("
foo")
`) `)
(def out (-> source (def out (-> source
ludus ludus