我刚接触SML,尝试获取列表中某个项的索引。我知道使用List.nth将给我一个索引位置处的项目值,但我想要的是索引值。可能有我不知道的内置函数。在我的情况下,该列表不包含重复项,因此如果该项在列表中,我会得到索引,否则它返回~1。这是我目前的代码。它能工作,但我认为它不够简洁:
val L=[1,2,3,4,5];
val m=length L-1;
fun Index(item, m, L)=if m<0 then ~1 else
if List.nth(L, m)=item then m else Index(item,m-1,L);