我正在尝试确定我的hd(tl list)是否为空。 hd(tl list) = ?
我将在等号的另一侧使用什么?
答案 0 :(得分:3)
您可以将问题“ hd(tl list)
是否存在”表达为等效问题,“ list
是否少于两个元素”。使用列表上的模式匹配,使用SML可以轻松地以优雅的方式回答后一个问题。这是一个交互式会话:
$ poly
Poly/ML 5.7.1 Release
> fun isNothing [] = true
# | isNothing [_] = true
# | isNothing _ = false;
val isNothing = fn: 'a list -> bool
此函数表示,“一个空列表的值为true
”,“一个具有单个元素的列表的值为true
”,其他任何列表的值为false
。测试:
> isNothing [];
val it = true: bool
> isNothing [1];
val it = true: bool
> isNothing [1, 2];
val it = false: bool
> isNothing [1, 2, 3];
val it = false: bool