Julio Mariņo y Carballo wrote:
> Well, my example tried to be compliant with the familiar form of
> evaluation
> annotations, but a more flexible syntax can be considered. An
> annotation like
>
> map f eval spineRigid
>
> would desugar every instance of (map f xs) into (map f (spineRigid
> xs)) and,
> more generally, annotations of the form
>
> f eval rp1 ... rpN
>
> would desugar every application (f x1 ... xN) into
> (f (rp1 x1) ... (rpN xN)).
Well, this looks like a reasonable proposal to me. Yet, the open
question
(in order to leave the purely syntactic level :-) is which functions
qualify as rigidness projections in such a kind of evaluation
annotations.
I assume that you do not want to leave this set unrestricted. On the
other
hand, I'm not sure whether one can reasonably restrict it to a
predefined
set of functions (though at present I would be happy with
whatever_this_rigid_primitive_is_called_today and the rigidSpine
function.)
> You are absolutely right. I would like to stress there are two parts
> in my
> proposal. The first one is just a sugaring that aims at helping you
> keep your
> code as tidy as possible, without forbidding other uses of the
> primitive. I
> feel that implementing that preprocessing and characterizing a wide
> range of
> "reasonable" uses via the projections is feasible.
>
> The other part is the hard one, of course. I was intentionaly vague in
> stating
> the wish of "tracking down the use of rigidness primitives" because I
> do not
> know whether something as a rigidness type may exist...
>
> Suggestions?
Unfortunately not yet.
Regards
Wolfgang
_______________________________________________
curry mailing list
curry_at_lists.RWTH-Aachen.DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/curry
Received on Mo Nov 15 2004 - 09:55:11 CET