35 lines
620 B
Plaintext
35 lines
620 B
Plaintext
-- main.mcl --
|
|
import "fmt"
|
|
|
|
# recursive function (not supported!)
|
|
func sum1($i) {
|
|
if $i < 0 {
|
|
-1 * sum2(-1 * $i)
|
|
} else {
|
|
if $i == 0 {
|
|
0 # terminate recursion
|
|
} else {
|
|
$i + sum2($i - 1)
|
|
}
|
|
}
|
|
}
|
|
func sum2($i) {
|
|
if $i < 0 {
|
|
-1 * sum1(-1 * $i)
|
|
} else {
|
|
if $i == 0 {
|
|
0 # terminate recursion
|
|
} else {
|
|
$i + sum1($i - 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
|