[Haskell-beginners] Convert String to List/Array of Numbers

Daniel Fischer daniel.is.fischer at web.de
Wed Sep 8 14:45:14 EDT 2010

On Wednesday 08 September 2010 20:13:17, Chaddaï Fouché wrote:
> Given that the notion of argument number isn't quite right in Haskell

Since, strictly speaking, a function always takes exactly one argument.
Haskell is like mathematics in that respect.

But since saying "a function which takes an argument of type a, returning a 
function which takes an argument of type b, returning a function which 
takes an argument of type c, returning ..." is much more cumbersome than 
saying "a function taking five arguments of types a, b, c, d, e 
respectively and returning a value of type f", we are using the more 
convenient, albeit inexact, language habitually.
Haskell is like mathematics in that respect too.

Be aware however, that the same function may be referred to as a function 
taking three, four or perhaps six arguments in other circumstances.

> and that you should put a type signature on all exported functions

And also on nontrivial internal functions.

> which provides more exact information on the function behaviour
> anyway... I would say that point-free is worth it for the clarity it
> affords to the accustomed Haskeller

It takes a bit to get used to (having a mthematical background helps).
And point-freeing is not always a win in readability.
Judge on a case-by-case basis.

> (all but the most twisted
> functions written in point-free style will only take "one" argument
> anyway).

Possibly two.

foo = (sum .) . enumFromThenTo 0

hasn't yet clearly crossed the border.

More information about the Beginners mailing list