about summary refs log blame commit diff stats
path: root/archive/2.vm/static-dispatch.mu
blob: a0157d133c705f6c1dbb30375d1939ee2a6cd2d1 (plain) (tree)
1
2
3
4
5
6
7
8
9







                                                                       
                         
             
             


               
                                
             
             


               
          
             
                                                 
                      
                                                    
                      
                                                                  

                      
# 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
]