function defenition. Do I understand it right?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

function defenition. Do I understand it right?

Jack Henahan
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
>