Hi I'm trying to make a custom function to replace a given element in a list.
Code: let i = elemIndex toReplace lst in case i of Just i -> let z = splitAt i lst x = fst z y = (snd z) in init x x ++ newNmr x ++ y Nothing -> [5] Error: > 1) > * Couldn't match expected type `[a] -> [a]' with actual type `[a]' > * The function `init' is applied to two arguments, > but its type `[a] -> [a]' has only one > In the first argument of `(++)', namely `init x x' > In the expression: init x x ++ newNmr x ++ y > * Relevant bindings include > y :: [a] (bound at C:\users\niel\desktop\test2.hs:41:21) > x :: [a] (bound at C:\users\niel\desktop\test2.hs:40:21) > z :: ([a], [a]) (bound at C:\users\niel\desktop\test2.hs:39:21) > newNmr :: [a] (bound at C:\users\niel\desktop\test2.hs:34:30) > lst :: [a] (bound at C:\users\niel\desktop\test2.hs:34:26) > toReplace :: a (bound at C:\users\niel\desktop\test2.hs:34:16) > (Some bindings suppressed; use -fmax-relevant-binds=N or > -fno-max-relevant-binds) > 2) > * Couldn't match expected type `[a] -> [a]' with actual type `[a]' > * The function `newNmr' is applied to one argument, > but its type `[a]' has none > In the first argument of `(++)', namely `newNmr x' > In the second argument of `(++)', namely `newNmr x ++ y' > * Relevant bindings include > y :: [a] (bound at C:\users\niel\desktop\test2.hs:41:21) > x :: [a] (bound at C:\users\niel\desktop\test2.hs:40:21) > z :: ([a], [a]) (bound at C:\users\niel\desktop\test2.hs:39:21) > newNmr :: [a] (bound at C:\users\niel\desktop\test2.hs:34:30) > lst :: [a] (bound at C:\users\niel\desktop\test2.hs:34:26) > toReplace :: a (bound at C:\users\niel\desktop\test2.hs:34:16) > (Some bindings suppressed; use -fmax-relevant-binds=N or > -fno-max-relevant-binds) > I've tried a lot, but I always got an error. What am I doing wrong? Thanks!
_______________________________________________ Haskell mailing list Haskell@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell