我有一个有参数的函数
whatIndex :: (Eq a) => a -> [a] -> Integer
我返回内部 [a] 的索引,从 0 开始,如果未找到则返回 -1。这是我写的
module WhatIndex where
whatIndex :: (Eq a) => a -> [a] -> Integer
whatIndex p [] = -1
whatIndex p (a:as)
| p==a = index
| otherwise = whatIndex p as
where index = 1+whatIndex p as
显然,我在这里没有正确增加索引。知道为什么这不起作用吗?另外,我无法更改参数。
=========================
这是一些基本的输入/输出
whatIndex 3 [] = -1
whatIndex 2 [1,2,3,2,1]=1
whatIndex 1 [1,2,3,2,1]=0
whatIndex 'b' ['a' .. 'z']=1