2024-09-28 11:57:56 +09:00
|
|
|
fun fn-y (t1 t2 va-ctx) {
|
2024-03-14 23:26:38 +09:00
|
|
|
| i |
|
|
|
|
i := 0
|
|
|
|
while (< i (va-count va-ctx)) {
|
|
|
|
printf "fn-y=>Y-VA[%d]=>[%d]\n" i (va-get i va-ctx)
|
|
|
|
i := (+ i 1)
|
|
|
|
}
|
|
|
|
}
|
2022-05-05 14:38:43 +00:00
|
|
|
|
2024-09-28 11:57:56 +09:00
|
|
|
fun x(a b ... :: x y z) {
|
2024-03-14 23:26:38 +09:00
|
|
|
|i|
|
2022-05-05 14:38:43 +00:00
|
|
|
|
2024-03-14 23:26:38 +09:00
|
|
|
x := (va-count)
|
2024-09-03 12:18:08 +09:00
|
|
|
y := (* a b)
|
|
|
|
z := (+ a b)
|
2022-05-05 14:38:43 +00:00
|
|
|
|
2024-03-14 23:26:38 +09:00
|
|
|
i := 0;
|
2024-09-03 12:18:08 +09:00
|
|
|
while (< i (va-count)) {
|
2024-03-14 23:26:38 +09:00
|
|
|
printf "VA[%d]=>[%d]\n" i (va-get i)
|
2024-09-03 12:18:08 +09:00
|
|
|
i := (+ i 1)
|
2024-03-14 23:26:38 +09:00
|
|
|
}
|
|
|
|
fn-y "hello" "world" (va-context)
|
2022-05-05 14:38:43 +00:00
|
|
|
|
2024-03-14 23:26:38 +09:00
|
|
|
return;
|
|
|
|
}
|
2022-05-05 14:38:43 +00:00
|
|
|
|
2024-03-14 23:26:38 +09:00
|
|
|
t := (x 10 20 30);
|
2024-09-03 12:18:08 +09:00
|
|
|
if (~= t 1) {
|
2024-01-18 18:16:05 +08:00
|
|
|
printf "ERROR: t is not 1\n"
|
|
|
|
} else {
|
|
|
|
printf "OK: %d\n" t
|
2024-03-14 23:26:38 +09:00
|
|
|
}
|
2024-01-15 00:47:01 +09:00
|
|
|
|
2024-03-14 23:26:38 +09:00
|
|
|
t := ([a b c] := (x 10 20 30 40 50));
|
2024-09-03 12:18:08 +09:00
|
|
|
if (~= t 3) {
|
2024-01-18 18:16:05 +08:00
|
|
|
printf "ERROR: t is not 3\n"
|
|
|
|
} else {
|
|
|
|
printf "OK: %d\n" t
|
2024-03-14 23:26:38 +09:00
|
|
|
}
|
|
|
|
|
2024-09-03 12:18:08 +09:00
|
|
|
if (~= a 3) {
|
2024-01-18 18:16:05 +08:00
|
|
|
printf "ERROR: a is not 3\n"
|
|
|
|
} else {
|
|
|
|
printf "OK: %d\n" a
|
2024-03-14 23:26:38 +09:00
|
|
|
}
|
|
|
|
|
2024-09-03 12:18:08 +09:00
|
|
|
if (~= b 200) {
|
2024-01-18 18:16:05 +08:00
|
|
|
printf "ERROR: b is not 200\n"
|
|
|
|
} else {
|
|
|
|
printf "OK: %d\n" b
|
2024-03-14 23:26:38 +09:00
|
|
|
}
|
2024-09-03 12:18:08 +09:00
|
|
|
if (~= c 30) {
|
2024-01-18 18:16:05 +08:00
|
|
|
printf "ERROR: c is not 30\n"
|
|
|
|
} else {
|
|
|
|
printf "OK: %d\n" c
|
2024-03-14 23:26:38 +09:00
|
|
|
}
|
2025-09-22 00:39:00 +09:00
|
|
|
|
2025-09-24 01:00:28 +09:00
|
|
|
## Redefine the plus function. core.+ still can refer to the built-in
|
|
|
|
## numeric plus primitive.
|
|
|
|
## [NOTE] Don't add other test cases below this test case
|
|
|
|
## as the + function has been manipulated for testing purpose
|
|
|
|
## Add new cases above here.
|
|
|
|
fun + (a b ...) {
|
|
|
|
| sum vac i |
|
|
|
|
sum := (core.+ a b)
|
|
|
|
vac := (va-count)
|
|
|
|
i := 0;
|
|
|
|
while (< i vac) {
|
|
|
|
sum := (core.+ sum (va-get i))
|
|
|
|
i := (core.+ i 1)
|
|
|
|
}
|
|
|
|
sum := (core.+ sum 9999)
|
|
|
|
return sum
|
|
|
|
}
|
|
|
|
c := (+ 10 20 30)
|
|
|
|
if (~= c 10059) {
|
|
|
|
printf "ERROR: c is not 30\n"
|
|
|
|
} else {
|
|
|
|
printf "OK: %d\n" c
|
|
|
|
}
|