"Recursion is the goto of functional programming".  Also, "Do not confuse
what is natural with what is habitual."  - Conal

On Tue, Mar 24, 2009 at 1:51 PM, Manlio Perillo <[email protected]>wrote:

> Jake McArthur ha scritto:
>
>> [...]
>> | With my function, instead, you only have to "follow" 1 operation:
>> |
>> | Prelude> (head, tail) = splitAt n xs
>>
>> I think you are way oversimplifying your own code.
>>
>> ~    takeList :: [Int] -> [a] -> [[a]]
>> ~    takeList [] _         =  []
>> ~    takeList _ []         =  []
>> ~    takeList (n : ns) xs  =  head : takeList ns tail
>> ~        where (head, tail) = splitAt n xs
>>
>> In order to understand this, I have to look at three different cases, an
>> uncons, a splitAt, a cons, *and* a recursive call. This is *seven*
>> different things I have to absorb.
>>
>
> These cases are, IMHO, more "natural".
>
> We have a set of equations, pattern matching and recursion.
> These are one of the basic building block of Haskell.
>
> The only "foreign" building block is the splitAt function.
>
> But this may be really a question of personal taste or experience.
> What is more "natural"?
>
> 1) pattern matching
> 2) recursion
> or
> 1) function composition
> 2) high level functions
>
> ?
>
> > [...]
>
>
> Manlio
>
> _______________________________________________
> Haskell-Cafe mailing list
> [email protected]
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to