[racket-dev] Racket2 suggestion: Attaching properties to operators

From: Laurent (laurent.orseau at gmail.com)
Date: Sun May 5 11:00:52 EDT 2013

Speaking of invariants, from time to time I would like Racket to know some
properties about its usual operators, so that some usual treatments get
simplified and can be easily generalized.

For example, considering group theory, properties like 'identity-element',
'absorbing-elements', 'inverse-operator', 'commutative?', 'associative?'
and such could be attached to operators like `+', `*', `max',
`string-append', `hc-append', etc.
Forms like `for/op' could use this information to know how to loop and
accumulate, and even possibly to optimize the code, even for newly created
operators.
In the simple case of + and such, one also only needs to define the binary
operator, and the multi-argument procedure can be generated automatically.

Of course it needs not be tied to group/category/mathematical theory. It
can be about whatever is useful.

It's only an idea, in case this resonates for someone.

Laurent
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/dev/archive/attachments/20130505/9fb31aad/attachment.html>

Posted on the dev mailing list.