No. Most constructors are functions, e.g. Just :: a -> Maybe a - a function.

On the other hand, Nothing :: Maybe a is a constructor, but not a function.

Andrew Wagner wrote:
Err, technically, aren't functions and constructors mutually exclusive? So if something is a function, it's, by definition, not a constructor?

On Wed, Jul 15, 2009 at 6:25 AM, Eugene Kirpichov <ekirpic...@gmail.com <mailto:ekirpic...@gmail.com>> wrote:

    Technically, the reason is not that (++) is a function, but that it is
    not a constructor of the [] type.

    And, not only is it not a constructor, but it also *can't* be one,
    because the main characteristic of pattern matching in Haskell is that
    it is (contrary to Prolog's unification) unambiguous (unambiguity of
    constructors is guaranteed by the semantics of Haskell's algebraic
    datatypes).

    If ++ could be pattern matched, what should have been the result of
    "let (x++y)=[1,2,3] in (x,y)"?

    2009/7/15 minh thu <not...@gmail.com <mailto:not...@gmail.com>>:
     > 2009/7/15 Magicloud Magiclouds <magicloud.magiclo...@gmail.com
    <mailto:magicloud.magiclo...@gmail.com>>:
     >> Hi,
     >>  I do not notice this before. "fun ([0, 1] ++ xs) = .." in my code
     >> could not be compiled, parse error.
     >
     > ++ is a function; you can't pattern-match on that.
     >
     > Cheers,
     > Thu
     > _______________________________________________
     > Haskell-Cafe mailing list
     > Haskell-Cafe@haskell.org <mailto:Haskell-Cafe@haskell.org>
     > http://www.haskell.org/mailman/listinfo/haskell-cafe
     >



    --
    Eugene Kirpichov
    Web IR developer, market.yandex.ru <http://market.yandex.ru>
    _______________________________________________
    Haskell-Cafe mailing list
    Haskell-Cafe@haskell.org <mailto:Haskell-Cafe@haskell.org>
    http://www.haskell.org/mailman/listinfo/haskell-cafe



------------------------------------------------------------------------

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

Reply via email to