| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'data/tests')
| -rw-r--r-- | data/tests/extra_functionals.fate | 39 | 
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) | 


