SML:如何确定列表索引是否为空?
SML: How to determine if a list index is empty?
我正在尝试确定我的 hd(tl list) 是否为空。 hd(tl list) = ?
我会在等号的另一边使用什么?
您可以将问题 'is hd(tl list)
nothing or not' 表示为等效问题 'does the list
have less than two elements'。后一个问题很容易通过 SML 使用列表中的模式匹配以一种优雅的方式回答。这是一个互动环节:
$ poly
Poly/ML 5.7.1 Release
> fun isNothing [] = true
# | isNothing [_] = true
# | isNothing _ = false;
val isNothing = fn: 'a list -> bool
此函数表示,'an empty list evaluates to true
'、'a list with a single element evaluates to 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
我正在尝试确定我的 hd(tl list) 是否为空。 hd(tl list) = ?
我会在等号的另一边使用什么?
您可以将问题 'is hd(tl list)
nothing or not' 表示为等效问题 'does the list
have less than two elements'。后一个问题很容易通过 SML 使用列表中的模式匹配以一种优雅的方式回答。这是一个互动环节:
$ poly
Poly/ML 5.7.1 Release
> fun isNothing [] = true
# | isNothing [_] = true
# | isNothing _ = false;
val isNothing = fn: 'a list -> bool
此函数表示,'an empty list evaluates to true
'、'a list with a single element evaluates to 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