diff options
Diffstat (limited to 'stdlib/source/lux/control/function.lux')
-rw-r--r-- | stdlib/source/lux/control/function.lux | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/stdlib/source/lux/control/function.lux b/stdlib/source/lux/control/function.lux deleted file mode 100644 index 56e54509c..000000000 --- a/stdlib/source/lux/control/function.lux +++ /dev/null @@ -1,46 +0,0 @@ -(.module: - [lux #* - [abstract - [monoid (#+ Monoid)]]]) - -(def: #export identity - {#.doc (doc "Identity function." - "Does nothing to its argument and just returns it." - (is? (identity value) - value))} - (All [a] (-> a a)) - (|>>)) - -(def: #export (compose f g) - {#.doc (doc "Function composition." - (= ((compose f g) "foo") - (f (g "foo"))))} - (All [a b c] - (-> (-> b c) (-> a b) (-> a c))) - (|>> g f)) - -(def: #export (constant value) - {#.doc (doc "Create constant functions." - (= ((constant "foo") "bar") - "foo"))} - (All [o] (-> o (All [i] (-> i o)))) - (function (_ _) value)) - -(def: #export (flip f) - {#.doc (doc "Flips the order of the arguments of a function." - (= ((flip f) "foo" "bar") - (f "bar" "foo")))} - (All [a b c] - (-> (-> a b c) (-> b a c))) - (function (_ x y) (f y x))) - -(def: #export (apply input function) - (All [i o] - (-> i (-> i o) o)) - (function input)) - -(implementation: #export monoid - (All [a] (Monoid (-> a a))) - - (def: identity ..identity) - (def: compose ..compose)) |