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
|
#
# Currying and keyword arguments.
#
errors = 0
check(debug, i, j) =
if $(equal $i, $j)
println($"$(debug) = $i [SUCCESS]")
else
eprintln($"$(debug):
computed $i
should be $j [FAILURE]")
errors = $(add $(errors), 1)
export
export
#
# Keywords in alphabetical order
#
curry.f(?A = 1, ?B = 2, C) =
private.A = $A
private.B = $B
private.C = $C
g(?D = 10, ?E = 11, F) =
value $"A = $A, B = $B, C = $C, D = $D, E = $E, F = $F"
check($'f(~A = 20, 21, 22)', $(f ~A = 20, 21, 22), $'A = 20, B = 2, C = 21, D = 10, E = 11, F = 22')
check($'f(~E = 20, 21, 22)', $(f ~E = 20, 21, 22), $'A = 1, B = 2, C = 21, D = 10, E = 20, F = 22')
check($'f(~E = 20, 21, ~A = 22, 23)', $(f ~E = 20, 21, ~A = 22, 23), $'A = 22, B = 2, C = 21, D = 10, E = 20, F = 23')
#
# Keywords in reverse alphabetical order
#
curry.f(?E = 11, ?D = 10, ~F) =
private.E = $E
private.D = $D
private.F = $F
g(?B = 2, ?A = 1, C) =
value $"A = $A, B = $B, C = $C, D = $D, E = $E, F = $F"
check($'f(~A = 20, 21, 22)', $(f ~A = 20, 21, ~F = 22), $'A = 20, B = 2, C = 21, D = 10, E = 11, F = 22')
check($'f(~E = 20, 21, 22)', $(f ~E = 20, 21, ~F = 22), $'A = 1, B = 2, C = 21, D = 10, E = 20, F = 22')
check($'f(~E = 20, 21, ~A = 22, 23)', $(f ~E = 20, 21, ~A = 22, ~F = 23), $'A = 22, B = 2, C = 21, D = 10, E = 20, F = 23')
if $(errors)
exit 1
|