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.
35 lines
632 B
Plaintext
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
|