パラメータを持つ関数があります
whatIndex :: (Eq a) => a -> [a] -> Integer
ここで、0 から始まる [a] 内の a のインデックスを返します。見つからない場合は -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