【发布时间】:2015-06-12 08:05:28
【问题描述】:
我正在尝试获取 SML 中整数列表的最后一个元素,但我想(以某种方式)指示用户何时传入不可接受的列表(例如空列表)。我的代码在这里:
fun lastInList [] = ~1
| lastInList [x] = x
| lastInList (x::xs) =
lastInList xs;
这适用于任何非空列表,因为执行总是会在第一行之前到达第二行。但是,是否有一种能够处理所有整数的惯用方式?我想我想返回某种异常。当前的解决方案不是很好,因为 -1 可以在我的列表中(显然)。
感谢您的帮助, 布莱曼
【问题讨论】:
-
听起来你的问题不是如何获取列表中的最后一个元素,而是如何区分特定结果(在这种情况下为空列表)与域中的任意数据元素(整数在这种情况下)。我建议重新表述您的问题以反映您的意图。