diff options
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/lux/data/text.lux | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/stdlib/source/lux/data/text.lux b/stdlib/source/lux/data/text.lux index fb2bc0728..c82dd5e41 100644 --- a/stdlib/source/lux/data/text.lux +++ b/stdlib/source/lux/data/text.lux @@ -106,6 +106,11 @@ _ false)) +(def: #export (encloses? boundary value) + (-> Text Text Bit) + (and (starts-with? boundary value) + (ends-with? boundary value))) + (def: #export (contains? sub text) (-> Text Text Bit) (case ("lux text index" 0 sub text) @@ -155,18 +160,18 @@ #.None (#.Cons sample #.Nil))) -(def: #export (replace-once pattern value template) +(def: #export (replace-once pattern replacement template) (-> Text Text Text Text) (<| (maybe.default template) (do maybe.monad [[pre post] (split-with pattern template)] - (wrap ($_ "lux text concat" pre value post))))) + (wrap ($_ "lux text concat" pre replacement post))))) -(def: #export (replace-all pattern value template) +(def: #export (replace-all pattern replacement template) (-> Text Text Text Text) (case (..split-with pattern template) (#.Some [pre post]) - ($_ "lux text concat" pre value (replace-all pattern value post)) + ($_ "lux text concat" pre replacement (replace-all pattern replacement post)) #.None template)) @@ -264,6 +269,7 @@ (..enclose' ..double-quote)) (def: #export space + Text " ") (def: #export (space? char) |