私は、Int
のリストと一般的なタイプのリストa
のリストを作成し、Intのリストにインデックスを持つすべての要素を削除する関数を書いています。リスト内の要素をInt(Haskell)のリストで削除する
例えば:removeEl [1,3,4] [1,2,3,4,5,6]
リターン[1,3,6]
またはremoveEl [1,2] "Firefox"
リターン"Fefox"
ここに私の試みです:
removeEl :: [Int] -> [a] -> [a]
removeEl [] xs = []
removeEl ns [] = []
removeEl (n:ns) (x:xs) | n == 0 = removeEl ns xs
| n > 0 = x:removeEl (n-1) xs
私はそれが失敗しない[Int]
、(n-1)
がInt
で実現しています。使用する補助機能を記述する必要がありますか?
'n> 0'の場合、(最初のものだけでなく)次のインデックスを減らす必要があります。 –