Files
mgmt/lang/interpret_test/TestAstFunc2/stmtfunc-recursive-no-operators.txtar
James Shubin 8fffd10280 lang: Port TestAstFunc2 to txtar format
This ports TestAstFunc2 from our home-grown content storage system to
the txtar package. Since a single file can be used to represent the
entire folder hierarchy, this makes it much easier to see and edit
tests.
2023-06-01 16:56:44 -04:00

35 lines
632 B
Plaintext

-- main.mcl --
import "fmt"
# recursive function (not supported!)
func sum1($in) {
if $in < 0 {
-1 * sum2(-1 * $in)
} else {
if $in == 0 {
0 # terminate recursion
} else {
$in + sum2($in - 1)
}
}
}
func sum2($in) {
if $in < 0 {
-1 * sum1(-1 * $in)
} else {
if $in == 0 {
0 # terminate recursion
} else {
$in + sum1($in - 1)
}
}
}
$out1 = sum1(4) # 4 + 3 + 2 + 1 + 0 = 10
$out2 = sum2(-5) # -5 + -4 + -3 + -2 + -1 + -0 = -15
test fmt.printf("sum1(4) is %d", $out1) {}
test fmt.printf("sum2(-5) is %d", $out2) {}
-- OUTPUT --
# err: errSetScope: recursive reference while setting scope: not a dag