mu/archive/1.vm/static-dispatch.mu

30 lines
574 B
Forth

# Example program showing how multiple functions with the same name can
# coexist, and how we select between them.
#
# Expected output:
# 4
# 7
# 7
def test a:num -> b:num [
local-scope
load-inputs
b <- add a, 1
]
def test a:num, b:num -> c:num [
local-scope
load-inputs
c <- add a, b
]
def main [
local-scope
a:num <- test 3 # selects single-input version
$print a, 10/newline
b:num <- test 3, 4 # selects double-input version
$print b, 10/newline
c:num <- test 3, 4, 5 # prefers double- to single-input version
$print c, 10/newline
]