C++ has tried this tack for some time. I can see doing for built-ins but how would you go about programmer-created operations? Trust the programmer? -- Matthias
On May 5, 2013, at 11:00 AM, Laurent wrote: > 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 > _________________________ > Racket Developers list: > http://lists.racket-lang.org/dev _________________________ Racket Developers list: http://lists.racket-lang.org/dev

