summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2020-09-14 22:20:48 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2020-09-14 22:20:48 +0200
commitccd6e9c7548b8097e5503a2087d41366bbf18846 (patch)
tree277ad2fd3ac77efa7520e9c1ad68c280a880ff89 /data
parenta702d0d6ea17b99fc7fd5af83e0eee6343e8d53b (diff)
Fully implements SetFields{,Computation}.
Diffstat (limited to 'data')
-rw-r--r--data/tests/extra_functionals.fate39
1 files changed, 39 insertions, 0 deletions
diff --git a/data/tests/extra_functionals.fate b/data/tests/extra_functionals.fate
new file mode 100644
index 0000000..53c4b33
--- /dev/null
+++ b/data/tests/extra_functionals.fate
@@ -0,0 +1,39 @@
+(fate_version 1)
+
+(declare_structure test_struct
+ (int i)
+ (float f)
+ (int j)
+ (string str)
+)
+
+(global test_struct st0)
+(global test_struct st1)
+
+(set_fields! st0
+ (i -1)
+ (f -5.0)
+ (j -2)
+ (str nothing)
+)
+
+(global (lambda test_struct (test_struct)) update_test_struct)
+
+(set_value update_test_struct
+ (lambda ( (test_struct s) )
+ (if_else (< (var s.i) 10)
+ (eval
+ update_test_struct
+ (set_fields s
+ (i (+ (var s.i) 1))
+ (j (+ (var s.j) 10))
+ )
+ )
+ (var s)
+ )
+ )
+)
+
+(set_value st1 (eval update_test_struct (var st0)))
+
+(end)