real
不是ML中的平等类型,因此也不是由 real
S-特别是 real list
S不是平等类型,因此您不能使用操作员 =
比较两个 real list
S,即使这些列表为空。相反,您需要进行模式匹配。例如,
fun reverse [] = []
| reverse (x::xs) = (reverse xs) @ [x]
或者
fun reverse [] = []
| reverse (x::xs) = case xs of
[] => [x]
| _ => (reverse xs) @ [x]
即使对于非质量类型也将起作用。
(或者,使用内置功能 List.rev
.)