File: Test5

package info (click to toggle)
omake 0.10.7-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 14,076 kB
  • sloc: ml: 49,729; ansic: 5,163; makefile: 688; sh: 110
file content (54 lines) | stat: -rw-r--r-- 859 bytes parent folder | download | duplicates (3)
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
51
52
53
54
#
# Tests of partial application
#
errors = false

#
# Addition
#
add2(i, j) =
   add($i, $j)

succ = $(apply $(add2), 1)

i = $(succ 5)
if $(equal $i, 6)
    println($"succ(5) = 6 [SUCCESS]")
else
    eprintln($"succ(5) != 6 [FAILURE]")
    errors = true
    export

#
# Builtin function
#
add-c-suffix = $(apply $(addsuffix), .c)
names = $(add-c-suffix A B C)
if $(equal $(names), A.c B.c C.c)
    println($"add-c-suffix(A B C) = $(names) [SUCCESS]")
else
    eprintln($"add-c-suffix(A B C) = $(names) [FAILURE]")
    errors = true
    export

#
# Keyword arguments
#
f(~A = 1, x) =
   g(~B = 2, y) =
      add($A, $B, $x, $y)

i = $(apply $f, ~B = 10, 20, 30)
if $(equal $i, 61)
    println($"f(~B = 10, 20, 30) = $i [SUCCESS]")
else
    eprintln($"f(~B = 10, 20, 30) = $i [FAILURE]")
    errors = true
    export

#
# Exit code
#
if $(errors)
    exit 1