[Haskell-cafe] Custom unary operator extension?
Derek Elkins
derek.a.elkins at gmail.com
Sun Sep 9 12:18:03 EDT 2007
On Sun, 2007-09-09 at 15:09 +0200, Peter Verswyvelen wrote:
> > Why? What is your application? In fact, alphanumeric identifiers are
> > used as unary operators.
> Why? Well, why are binary operators allowed and unary operators not?
> Isn't that some kind of discrimination? In math, many many operators are
> unary. Haskell allows creating binary operators. So I would understand
> that Haskell supported neither binary nor unary operators, but prefering
> one above the other just seems odd. Especially when coming from C++ and C#.
>
> My application? I'm teaching basic math to beginning video game
> programmers, and I wanted to demonstrate the logic operators "not, and,
> or, logical equivalence and implication" etc in Haskell, building them
> from scratch. Since most programmers have symbol-phobia, I wanted to let
> them play with the symbols for operators, with Haskell. E.g. \/, /\,
> --> <--> ==> <==> for or, and, if/then, iff, logical implication,
> logical equivalence, etc... I cannot do this for the "not" operator,
> which is a bit annoying, but it's not a show stopper.
>
> > You can also use "special syntax" for having unary operators. E.g.
> >
> > (*) :: () -> a -> a
> >
> Nice trick :-)
>
> > There has been a long discussion whether the unary minus belongs to
> > number literals or not.
> > http://www.haskell.org/pipermail/haskell-cafe/2006-September/017941.html
>
> Yes I read it...
>
> > I think that the benefits of prefix or postfix symbolic operators were
> > not worth dispensing with the comfortable section syntax.
> Well, that's personal I guess, but I would prefer the syntax (? / 100)
> and (100 / ?), which is just a single extra character to type, and hence
> allow unary operators, but hey, that's just me, the newbie ;-)
With enough insanity simulating infix operators should be no problem,
http://www.informatik.uni-bonn.de/~ralf/publications/Quote.pdf
More information about the Haskell-Cafe
mailing list