diff options
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/lux.lux | 36 |
1 files changed, 8 insertions, 28 deletions
diff --git a/stdlib/source/lux.lux b/stdlib/source/lux.lux index 71cdbe716..4710b022b 100644 --- a/stdlib/source/lux.lux +++ b/stdlib/source/lux.lux @@ -4112,38 +4112,18 @@ _ (return [#Nothing tokens]))) -(def: (split-with' p ys xs) - (All [a] - (-> (-> a Bool) (List a) (List a) [(List a) (List a)])) - (case xs - #Nil - [ys xs] - - (#Cons x xs') - (if (p x) - (split-with' p (list& x ys) xs') - [ys xs]))) - -(def: (split-with p xs) - (All [a] - (-> (-> a Bool) (List a) [(List a) (List a)])) - (let [[ys' xs'] (split-with' p #Nil xs)] - [(list/reverse ys') xs'])) - (def: (parse-short-referrals tokens) (-> (List Code) (Meta [Referrals (List Code)])) (case tokens - (^ (list& [_ (#Tag "" "+")] tokens')) - (let [[defs tokens'] (split-with symbol? tokens')] - (do Monad<Meta> - [defs' (extract-defs defs)] - (return [(#Only defs') tokens']))) + (^ (list& [_ (#Form (list& [_ (#Tag "" "+")] defs))] tokens')) + (do Monad<Meta> + [defs' (extract-defs defs)] + (return [(#Only defs') tokens'])) - (^ (list& [_ (#Tag "" "-")] tokens')) - (let [[defs tokens'] (split-with symbol? tokens')] - (do Monad<Meta> - [defs' (extract-defs defs)] - (return [(#Exclude defs') tokens']))) + (^ (list& [_ (#Form (list& [_ (#Tag "" "-")] defs))] tokens')) + (do Monad<Meta> + [defs' (extract-defs defs)] + (return [(#Exclude defs') tokens'])) (^ (list& [_ (#Tag "" "*")] tokens')) (return [#All tokens']) |