SML中的通配符

Apo*_*llo 1 sml

  1 fun max(a,b,c) =                                                                
  2     if a > b andalso a > c then a                                               
  3     else if b > a andalso b > c then b                                          
  4     else c                                                                      
  5 
  6                                                                                 
  6 val x = max(1,_,3);
Run Code Online (Sandbox Code Playgroud)

我在SML中写了一个带三个数字的max函数.如果输入3个整数,它就可以正常工作.但是,如果我给函数一个通配符,它​​会抛出以下异常:max.sml:6.15 Error: syntax error: replacing WILD with EQUALOP

为什么是这样?

sep*_*p2k 5

通配符仅用于模式匹配.它们不能用作表达式,因为它们不会计算为值.