【发布时间】:2023-03-08 15:21:01
【问题描述】:
在 Ullman 的 SML 书中:
一个匹配表达式由一个或多个规则组成,它们是一对 表格
<pattern> => <expression>规则用竖线分隔,所以匹配的形式是:
<pattern 1> => <expression 1> | <pattern 2> => <expression 2> | <pattern n> => <expression n>=> 后面的每个表达式必须是同一类型, 因为其中任何一个都可能成为匹配的值。
匹配表达式表达式中的模式(因此它们具有类型)吗?
匹配表达式中的模式也应该具有相同的类型吗?
特别是当匹配表达式用于定义函数时,例如
val rec f = fn P1 => E1 | P2 => E2 | ... | Pn => En;
匹配表达式中的模式也应该具有相同的类型吗? (我猜是的,因为函数的参数是有类型的,我们不能给同一个参数不同类型的参数。)
谢谢。
【问题讨论】:
标签: functional-programming pattern-matching programming-languages sml ml