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
|