Javascriptの "indexOf"に相当する関数を書こうとしています(文字列内の文字のインデックスを取得しています)が、再帰関数を呼び出すときに問題があります。より多くのパラメータを持つ再帰
これはエラーです:
Couldn't match expected type `Int'
with actual type `a0 -> [a0] -> Int'
In the return type of a call of `get_index'
Probable cause: `get_index' is applied to too few arguments
In the expression: get_index (index + 1 char str)
In an equation for `get_index':
get_index index char str
| index < 0 || index >= (length str) = - 1
| (str !! index) == char = index
| otherwise = get_index (index + 1 char str)
Failed, modules loaded: none.
これは私のコードです:
index_of char str =
get_index 0 char str
get_index index char str
| index < 0 || index >= (length str) = -1
| (str !! index) == char = index
| otherwise = get_index(index + 1 char str)
まず関数の目的は、インデックスパラメータ、より多くの何も再帰を呼び出すためだけで、私が持っている問題があります2番目の関数では、再帰。
あなたの間違いは 'get_index'の再帰呼び出しにあります。 'get_index'の最後の行では、' get_index(index + 1)char str'、 'get_index(index + 1 char str)'を意味していました。そして、機能は期待通りに機能します! – Alec
はい、うまくいきました。あなたより! – Marcus