Der folgende Code bei der Lösung dosn't kompilieren:Hilfe dieses Codes in Haskell
reindex :: (a -> a) -> [a]
reindex [] = []
reindex f y = let x = (zip [0..] y)
z = [(f m) |el <- x, let m = fst el]
[n !! y | n <- z, (n !! y) > -1]
ich eine der folgenden Fehlermeldungen erhalten:
a)
parse error on input `['
b)
parse error on input `]'
Ich habe versucht, infront einige während Räume einfügen oder Rückseite der letzten Zeile, aber es funktioniert nicht. Es macht mich mehr verärgert, weil ich nicht wirklich weiß, was passiert.
Benötigen
UPDATE helfen, eine Funktion und eine Liste als Argumente
reindex nimmt. Es nimmt die Indizes der Liste nacheinander und wendet die Funktion darauf an, um neue Indizes zu erzeugen. Es wird die neu generierten Indizes verwenden, um die Werte aus der ursprünglichen Liste abzurufen, um eine neue Liste zu bilden. Wenn ein neuer Index außerhalb der Grenzen der ursprünglichen Liste liegt, wird diese Nummer ignoriert.
Beispiele:
Main> reindex (\x -> x + 1) [3,4,5]
[4,5]
Main> reindex (\x -> x - 2) [3,4,5]
[3]
Updates zum Beitrag hinzugefügt – Kap
Ich glaube 'n !! y soll an der Position "n" in "y" indexieren. I.e.er dachte nicht, dass "y" eine Nummer wäre, er verwechselte die Reihenfolge der Operanden mit "!!". – sepp2k
Danke für Ihre Antwort – Kap