我是 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);