summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ataxic_sugar.erl39
1 files changed, 38 insertions, 1 deletions
diff --git a/src/ataxic_sugar.erl b/src/ataxic_sugar.erl
index fac4f5c..556e08a 100644
--- a/src/ataxic_sugar.erl
+++ b/src/ataxic_sugar.erl
@@ -10,7 +10,9 @@
-export
(
[
- update_array_cell/2
+ update_array_cell/2,
+ update_orddict_element/2,
+ nop/0
]
).
@@ -47,3 +49,38 @@ update_array_cell (IX, OP) ->
ataxic:current_value()
]
).
+
+-spec update_orddict_element
+ (
+ non_neg_integer(),
+ ataxic:basic()
+ )
+ -> ataxic:basic().
+update_orddict_element (IX, OP) ->
+ ataxic:apply_function
+ (
+ orddict,
+ store,
+ [
+ ataxic:constant(IX),
+ ataxic:sequence
+ (
+ [
+ ataxic:apply_function
+ (
+ orddict,
+ fetch,
+ [
+ ataxic:constant(IX),
+ ataxic:current_value()
+ ]
+ ),
+ OP
+ ]
+ ),
+ ataxic:current_value()
+ ]
+ ).
+
+-spec nop () -> ataxic:basic().
+nop () -> ataxic:sequence([]).