aboutsummaryrefslogtreecommitdiff
path: root/stdlib
diff options
context:
space:
mode:
authorEduardo Julian2017-06-14 17:57:04 -0400
committerEduardo Julian2017-06-14 17:57:04 -0400
commitdaa6c92c14d9b85bf3ade2b6684e3c97dcda851e (patch)
treed5937f9dcd59741f872d03e7fe8ad058c9272370 /stdlib
parentc7e53036704b1a89b740c023c7b4bcc74b7e956a (diff)
- Added Hash<Bool> and as-is macro..
Diffstat (limited to 'stdlib')
-rw-r--r--stdlib/source/lux.lux9
-rw-r--r--stdlib/source/lux/data/bool.lux8
-rw-r--r--stdlib/source/lux/host.jvm.lux4
3 files changed, 16 insertions, 5 deletions
diff --git a/stdlib/source/lux.lux b/stdlib/source/lux.lux
index f801ebebd..a225683e0 100644
--- a/stdlib/source/lux.lux
+++ b/stdlib/source/lux.lux
@@ -5573,16 +5573,16 @@
_
(fail "Wrong syntax for $")))
-(def: #export (is left right)
+(def: #export (is reference sample)
{#;doc (doc "Tests whether the 2 values are identical (not just \"equal\")."
"This one should succeed:"
(let [value 5]
- (is 5 5))
+ (is value value))
"This one should fail:"
(is 5 (i.+ 2 3)))}
(All [a] (-> a a Bool))
- (_lux_proc ["lux" "is"] [left right]))
+ (_lux_proc ["lux" "is"] [reference sample]))
(macro: #export (^@ tokens)
{#;doc (doc "Allows you to simultaneously bind and de-structure a value."
@@ -5774,3 +5774,6 @@
(def: #export (assume mx)
(All [a] (-> (Maybe a) a))
(default (undefined) mx))
+
+(macro: #export (as-is tokens state)
+ (#;Right [state tokens]))
diff --git a/stdlib/source/lux/data/bool.lux b/stdlib/source/lux/data/bool.lux
index 2d89de635..35c00477f 100644
--- a/stdlib/source/lux/data/bool.lux
+++ b/stdlib/source/lux/data/bool.lux
@@ -2,6 +2,7 @@
lux
(lux (control monoid
eq
+ hash
codec)))
## [Structures]
@@ -11,6 +12,13 @@
y
(not y))))
+(struct: #export _ (Hash Bool)
+ (def: eq Eq<Bool>)
+ (def: (hash value)
+ (case value
+ true +1
+ false +0)))
+
(do-template [<name> <unit> <op>]
[(struct: #export <name> (Monoid Bool)
(def: unit <unit>)
diff --git a/stdlib/source/lux/host.jvm.lux b/stdlib/source/lux/host.jvm.lux
index b31def073..b4dde1157 100644
--- a/stdlib/source/lux/host.jvm.lux
+++ b/stdlib/source/lux/host.jvm.lux
@@ -2025,7 +2025,7 @@
(syntax: #export (array-load idx array)
{#;doc (doc "Loads an element from an array."
- (array-load 10 my-array))}
+ (array-load +10 my-array))}
(case array
[_ (#;Symbol array-name)]
(do Monad<Lux>
@@ -2054,7 +2054,7 @@
(syntax: #export (array-store idx value array)
{#;doc (doc "Stores an element into an array."
- (array-store 10 my-object my-array))}
+ (array-store +10 my-object my-array))}
(case array
[_ (#;Symbol array-name)]
(do Monad<Lux>