我试图弄清楚如何返回另一个列表中特定值出现的索引列表。即索引(1,[1,2,1,1,2,2,1]);val it = [1,3,4,7] 整数列表
我试图弄清楚列表是如何工作的,并试图在递归方面做得更好,所以我不想使用 List.nth (或任何库函数),我还不想进入模式匹配安静状态。
这是我到目前为止所拥有的
fun index(x, L) =
if null L then 0
else if x=hd(L) then
1
else
1 + index(x,tl L);
fun inde(x, L) =
if null L then []
else if x=hd(L) then
index(x, tl L) :: inde(x, tl L)
else
inde(x, tl L);
index(4, [4,2,1,3,1,1]);
inde(1,[1,2,1,1,2,2,1]);
这给了我类似 [2, 1, 3, 0] 的东西。我想我只是很难正确地增加东西来获得索引。index 函数本身可以正常工作。