pfff, I got grazy here

On this function it works fine :

-- | The main entry point.
init' :: [a] -> Maybe [a]
init' [] = Nothing
init' [x] = Just []
init' (x:xs) = Just (x:fromMaybe xs (init' xs))

main = print . init' $ [1,3]


and on this one it does not work :

plusplus' :: [a] -> [a] -> [a]
plusplus' [] (xs) = xs
plusplus' [] [] = []
plusplus' (xs) [] =  xs
plusplus' (x:xs) yx = plusplus' xs (x:yx)
 

main = print . plusplus' $  [1,2] [3, 4]

Roelof




Alex Hammel schreef op 12-5-2015 om 20:19:
The relevant part of that error message is this:

> The function ‘[1, 2]’ is applied to one argument, but its type
> [t0]
> has none

Which means that you're trying to call a list literal as though it were a function (with one argument). Which probably means that you've got a ($) out of place.


On Tue, 12 May 2015 at 11:16 Roelof Wobben <r.wobben@home.nl> wrote:
Thanks,

Now I see the last error on the main line :

src/Main.hs@7:28-7:39
Couldn't match expected type ‘[t1] -> [a0]’ with actual type
[t0]
The function ‘[1, 2]’ is applied to one argument, but its type
[t0]
has none In the second argument of ‘($)’, namely ‘[1, 2] [3, 4]’ In the expression: print . plusplus' $ [1, 2] [3, 4]

Roelof




Alex Hammel schreef op 12-5-2015 om 20:11:
You're missing the parens around (x:yx) in the last clause.

On Tue, 12 May 2015 at 11:02 Roelof Wobben <r.wobben@home.nl> wrote:
Hello,

I try to re implement ++

So far I have this ;

plusplus' :: [a] -> [a] -> [a]
plusplus' [] (xs) = xs
plusplus' [] [] = []
plusplus' (xs) [] =  xs
plusplus' (x:xs) yx = plusplus' xs x:yx

main = print . plusplus' $ [1,2] [3,4]


But I still get this error message :

src/Main.hs@5:23-5:37
Couldn't match expected type
a
with actual type
[a]
a
is a rigid type variable bound by the type signature for plusplus' :: [a] -> [a] -> [a] at /home/app/isolation-runner-work/projects/112825/session.207/src/src/Main.hs:1:14 Relevant bindings include yx :: [a] (bound at /home/app/isolation-runner-work/projects/112825/session.207/src/src/Main.hs:5:18) xs :: [a] (bound at /home/app/isolation-runner-work/projects/112825/session.207/src/src/Main.hs:5:14) x :: a (bound at /home/app/isolation-runner-work/projects/112825/session.207/src/src/Main.hs:5:12) plusplus' :: [a] -> [a] -> [a] (bound at /home/app/isolation-runner-work/projects/112825/session.207/src/src/Main.hs:2:1)






Avast logo

Dit e-mailbericht is gecontroleerd op virussen met Avast antivirussoftware.
www.avast.com


_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners


_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners




Avast logo

Dit e-mailbericht is gecontroleerd op virussen met Avast antivirussoftware.
www.avast.com


_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners


_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners




Avast logo

Dit e-mailbericht is gecontroleerd op virussen met Avast antivirussoftware.
www.avast.com