我目前正在Coursera上完成功能编程原则的课程,我刚刚学习了模式匹配。我试图做一些似乎不可能的事情,我想知道什么才是正确的成语。以下是本课程的一些代码:case class Number(n: Int) extends Expr {}
case class Sum(e1: Expr, e2: Expr) extends Expr</e
:: _) as xs -> Printf.printf "The list has %d elements" (List.length xs)
在实践中,它们的行为是相同的,并且在理论上,只要按顺序匹配如果一些较新版本的编译器通过重新排列顺序来开始优化匹配语句,该怎么办?在这种情况下,只有第二个版本会产生正确的结果。我应该担心这个吗?