about summary refs log tree commit diff stats
path: root/js/scripting-lang/scratch_tests/test_embedded_functions_partial.txt
blob: 7cc201c49a1a4afa07ca79b34f23e84c7de5be5c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/* Partial embedded functions test */

/* Test 1: Basic arrow functions */
basic : {
    identity: x -> x,
    double: x -> x * 2,
    add: x y -> x + y,
    multiply: x y -> x * y
};

/* Test 2: When expressions */
classifier : {
    classify: x -> when x is
        0 then "zero"
        1 then "one"
        2 then "two"
        _ then "other",
    is_positive: x -> when x is
        0 then false
        _ then true
};

/* Output tests */
..out "=== PARTIAL EMBEDDED FUNCTIONS TEST ===";

..out "Basic functions:";
id_result : basic.identity 42;
..out id_result;
double_result : basic.double 21;
..out double_result;
add_result : basic.add 10 20;
..out add_result;
mult_result : basic.multiply 6 7;
..out mult_result;

..out "Classifier functions:";
class_zero : classifier.classify 0;
..out class_zero;
class_one : classifier.classify 1;
..out class_one;
class_two : classifier.classify 2;
..out class_two;
class_other : classifier.classify 99;
..out class_other;

..out "Positive test:";
pos_test : classifier.is_positive 5;
..out pos_test;
neg_test : classifier.is_positive -3;
..out neg_test;