[Haskell-beginners] function defenition. Do I understand it right?

Jack Henahan jhenahan at uvm.edu
Mon Jul 11 21:56:23 CEST 2011


Forgot to CC the list.

Begin forwarded message:

> From: Jack Henahan <jhenahan at uvm.edu>
> Subject: Re: [Haskell-beginners] function defenition. Do I understand it right?
> Date: July 11, 2011 3:55:13 PM EDT
> To: Roelof Wobben <rwobben at hotmail.com>
> 
> You're overcomplicating things. Look at splitAt from Data.List:
> 
> http://hackage.haskell.org/packages/archive/base/4.1.0.0/doc/html/Data-List.html#v%3AsplitAt
> 
> On Jul 11, 2011, at 3:51 PM, Roelof Wobben wrote:
> 
>> Hello, 
>> 
>> Thanks for the tip.
>> Im stuck now.
>> 
>> I have this : 
>> 
>> halve (xs) | length xs'mod'2 == 0   = (take n xs drop n xs)
>>           | otherwise = (take n+1 xs  drop n+1 xs
>>           where n= lenght xs'div'2 
>> 
>> 
>> main = do
>>  putStrLn $ show $ halve [1,2,3,4]
>>  putStrLn $ show $ halve [1,2,3]
>> 
>> But now I get this message :
>> 
>> ERROR line 3 - Syntax error in expression (unexpected keyword "where")
>> 
>> Appearently I can't use where here.
>> 
>> How can I solve this ?
>> 
>> Roelof
>> 
>> 
>> 
>>> Date: Mon, 11 Jul 2011 11:44:28 -0400
>>> Subject: Re: [Haskell-beginners] function defenition. Do I understand it right?
>>> From: dmcbride at neondsl.com
>>> To: rwobben at hotmail.com
>>> CC: beginners at haskell.org
>>> 
>>> For simple snippets like this, you can go to
>>> http://codepad.org/ddySVOPr and run your code to see if it works.
>>> 
>>> And your first version (once corrected for syntax) works on any list
>>> length except for empty lists.
>>> 
>>> On Mon, Jul 11, 2011 at 10:48 AM, Roelof Wobben <rwobben at hotmail.com> wrote:
>>>> Hello,
>>>> 
>>>> I have made a exercise where I must split a even list.
>>>> The answer is :
>>>> 
>>>> halve xs = (take n xs  drop n xs)
>>>>     where n = length xs 'div' 2
>>>> 
>>>> Now I want to change it so i can split even and not even list,.
>>>> I thought this can be the answer
>>>> 
>>>> halve xs =
>>>>         lenght xs 'mod' 2 = 0  : (take n  xs   drop n xs)
>>>>         otherwise :  (take n+1 xs  drop n+1 xs)
>>>>         where
>>>>             n = length xs 'div' 2
>>>> 
>>>> 
>>>> Can this be working ?
>>>> I did not check this on GCHI because Im  re - installing my OS.
>>>> 
>>>> Regards.
>>>> 
>>>> Roelof
>>>> 
>>>> 
>>>> _______________________________________________
>>>> Beginners mailing list
>>>> Beginners at haskell.org
>>>> http://www.haskell.org/mailman/listinfo/beginners
>>>> 
>>>> 
>> _______________________________________________
>> Beginners mailing list
>> Beginners at haskell.org
>> http://www.haskell.org/mailman/listinfo/beginners
> 




More information about the Beginners mailing list