On Tue, 21 Dec 2010, gutti wrote:

One thing that still confuses me a litte:

polynom: double -> double ->double
polynom x y = y^2 + x^2 + 2*x*y

Type declaration for this polynom with two inputs

I guess you mean upper case "Double", otherwise it's a type variable and the compiler will ask for type constraint like "polynom :: Num double => ..."

Btw. the english word for the german "Polynom" is "polynomial". :-)

- what is input and what is output and which way a I supposed to read it ? -- x,y,polynom ? and when would I use double -> double => double

'polynom' is the function, 'x' and 'y' are its parameters (input), 'polynom x y' is the function value (output). The type 'double -> double => double' does not exist. The double arrow can be only at one place, immediately after the '::' and it separates the type constraints from the type expression.

polynomialFunction :: Num a => a -> a -> a

Is there by the way the possibility in haskell to create functions with
several outputs - ala Matlab function declation:

function [N,k] = histogram(v,n)

You can use pairs for results (and of course for arguments, too). See for instance:

Prelude> :type divMod
divMod :: (Integral a) => a -> a -> (a, a)

What you cannot do in contrast to MatLab: You cannot omit function parameters in a function call, in a function implementation you cannot check for the number of parameters that the user has given actually (because the user cannot omit any argument at all), and you cannot check the number of requested output values.

For me these restrictions are an advantage. In MatLab, a function can perform something completely different depending on the number of output or input values.


Hope I'm not asking too basic questions here, so feel free to point me to
the right tutorial.

There's the haskell-beginners mailing list, but a good tutorial is certainly that by Hal Daume.
  http://www.haskell.org/haskellwiki/Yet_Another_Haskell_Tutorial

However I see, that the URL http://darcs.haskell.org/yaht/yaht.pdf does not work any longer, certainly due to the recent server movement. :-(

There is also various stuff at the Wiki:
  http://www.haskell.org/haskellwiki/Category:Idioms
  http://www.haskell.org/haskellwiki/Category:FAQ
  http://www.haskell.org/haskellwiki/Category:Glossary
  http://www.haskell.org/haskellwiki/Category:Style
  http://www.haskell.org/haskellwiki/Common_Misunderstandings
  http://www.haskell.org/haskellwiki/Haskell_programming_tips


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to