[Haskell-beginners] The (x:xs) in function parameter is a tuple?
Sumit Sahrawat, Maths & Computing, IIT (BHU)
sumit.sahrawat.apm13 at iitbhu.ac.in
Wed Feb 24 10:44:04 UTC 2016
(:) is a constructor. For example, you can define lists as:
data List a = Nil | Cons a (List a)
GHC does some magic to provide us with the same definition, but with Nil
replaced by  and Cons replaced by (:).
As constructors can be pattern matched on, you can also match on a (:),
which is a data constructor.
You might consider (x:xs) as a tuple, only if you're willing to consider
(Cons x xs) as a tuple. It is a tuple (ordered collection of two values),
but not a tuple according to their definition in haskell.
What kind of tuple are you talking about?
Hope this helps.
On 24 February 2016 at 16:01, Nan Xiao <xiaonan830818 at gmail.com> wrote:
> Hi all,
> Greetings from me!
> I am confused about the function parameters and tuple. E.g.:
> occurs value  = 0
> occurs value (x:xs) = (if value == x then 1 else 0) + occurs value xs
> should we consider (x:xs) as a tuple?
> Thanks in advance!
> Best Regards
> Nan Xiao
> Beginners mailing list
> Beginners at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Beginners