[Haskell-beginners] why is this type wrong

Sumit Sahrawat, Maths & Computing, IIT (BHU) sumit.sahrawat.apm13 at iitbhu.ac.in
Tue May 12 06:51:01 UTC 2015


Make a dummy main function,

    main = return ()

And load this file in ghci to use you definition of last. The other option
is to not make this module the Main module.
Then also, you can load it in ghci.

On 12 May 2015 at 12:18, Roelof Wobben <r.wobben at home.nl> wrote:

>  Thanks
>
> Can I just say Main =
> I will google to look how to make a safeLast.
>
> Roelof
>
>
>
> Alexey Shmalko schreef op 12-5-2015 om 8:46:
>
> last' [] = error "last' on empty list"
>
> Otherwise, you should wrap the result in Maybe to make your function work
> as safeLast.
>
>  Oh... GHC's exception seems to say you haven't defined `main` in your
> module.
>
> On Tue, May 12, 2015 at 9:42 AM Roelof Wobben <r.wobben at home.nl> wrote:
>
>>  Mike Meyer schreef op 12-5-2015 om 8:39:
>>
>> On May 12, 2015 1:32 AM, "Roelof Wobben" <r.wobben at home.nl> wrote:
>> >
>> > Hello,
>> >
>> > To practice recursion I try to make some functions of Data list myself
>> on the recursive way.
>> >
>> > First I will try last.
>> >
>> > So I did this :
>> >
>> > -- | Main entry point to the application.
>> > module Main where
>> >
>> > -- | The main entry point.
>> > last' :: [a] -> a
>> > last' [] = []
>> > last' (x:xs) = last xs
>> >
>> >
>> > but now I see this error message :
>> >
>> > src/Main.hs at 6:12-6:14
>> > Couldn't match expected type
>> > a
>> > with actual type
>> > [t0]
>> > a
>> > is a rigid type variable bound by the type signature for last' :: [a]
>> -> a at
>> /home/app/isolation-runner-work/projects/112712/session.207/src/src/Main.hs:5:10
>> Relevant bindings include last' :: [a] -> a (bound at
>> /home/app/isolation-runner-work/projects/112712/session.207/src/src/Main.hs:6:1)
>>>> >
>> > I my oponion I have said that the input is a array and the output a
>> string,
>>
>> Except for saying list instead of array, I'd agree with that. But when
>> you write last' [] = [], the output is [], which does not have the expected
>> type of strong. So the actual type is a list.
>>
>> You need to return a string.
>>
>>
>> _______________________________________________
>> Beginners mailing listBeginners at haskell.orghttp://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>>
>>
>>  Thanks,
>>
>> I did change it to this :
>>
>> -- | Main entry point to the application.
>> module Main where
>>
>> -- | The main entry point.
>> last' :: [a] -> a
>>  last' [x] = x
>>  last' (x:xs) = last xs
>>
>>  So I have to look at another way to say if there is a empty list then
>> there is no answer.
>> And when I run it  i see this error message :
>>
>> GHC threw an exception : Not in scope: ‘Main.main’
>>
>>
>> Roelof
>>
>>
>>
>> ------------------------------
>>    [image: Avast logo] <http://www.avast.com/>
>>
>> Dit e-mailbericht is gecontroleerd op virussen met Avast
>> antivirussoftware.
>> www.avast.com
>>
>>  _______________________________________________
>> Beginners mailing list
>> Beginners at haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>>
>
>
> _______________________________________________
> Beginners mailing listBeginners at haskell.orghttp://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
>
>
>
> ------------------------------
>   [image: Avast logo] <http://www.avast.com/>
>
> Dit e-mailbericht is gecontroleerd op virussen met Avast
> antivirussoftware.
> www.avast.com
>
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
>


-- 
Regards

Sumit Sahrawat
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20150512/ff4a7cc6/attachment-0001.html>


More information about the Beginners mailing list