Files
mgmt/lang/interpret_test/TestAstFunc2/polymorphic-lambda.txtar
James Shubin 72fe0cd6db lang: Polymorphic lambda functions aren't allowed for now
We don't allow a lambda variable to be polymorphic anymore. Of course
this isn't bad, but it makes things too difficult, at least for now.
It's also likely that we don't need this specific feature very often I
think.
2023-12-27 16:33:38 -05:00

21 lines
546 B
Plaintext

-- main.mcl --
import "fmt"
# TODO: should this be allowed? it means the func value has two different types!
# this should be a polymorphic function as a value, iow a lambda
$add = func($x) {
$x + $x
}
$num = 2
$out1 = $add($num) # 4
test fmt.printf("%d + %d is %d", $num, $num, $out1) {} # simple math
$val = "hello"
$out2 = $add($val) # hellohello
test fmt.printf("%s + %s is %s", $val, $val, $out2) {} # simple concat
-- OUTPUT --
# err: errUnify: can't unify, invariant illogicality with equality: base kind does not match (Int != Str)