>>      Rep == Record(label: L);
>>
>> Then
>>
>>     star?(x: %): Boolean == nil? rep x;
>>     star: % == nil$Rep;
> 
> Oh yes, that looks nice.
>  
>> Unfortunately, I don't know yet how to let this work in Axiom.
> 
> Did you try? I didn't realize that Record in Axiom and Aldor would be very
> different. In any case, in axiom one could use pretend, I guess...

No I did not try. That nil is exported by Rep is an extension of Record 
in LibAldor that was introduced by Manuel Bronstein. If memory serves me 
right, I was with him about two years ago when he introduced it. This 
extension of Record just avoids to see "pretend" in "higher level" 
places of the library.

>>> If one *really* needs to distinguish the different transcendental elements, 
>>> one
>>> could write them as *1, *2, etc.
>> Ah, but then what about allowing Derivative(F) to have an (optional) 
>> additional
>> element with is by default newLabel()$ExtraLabels and have the user provide 
>> the
>> *1, *2, etc?

> I'd rather stick with Augment,

OK, I think I can live with that, but let me first really comment on 
your new branch.

> but I like the idea of giving the user the
> possibility to supply the outputForm of the transcendental element. In fact, I
> contemplated a similar possibility for Plus, Times, Compose, etc., namely,
> giving them an optional argument that indicates how much of the internal
> representation should be shown. For example, 
> 
> Plus(A, B, showtags) 
> 
> could output
> 
> %83 >> b := structures(set 
> ["a"])$(Plus(SingletonSpecies,SingletonSpecies))(String)
> 
> %84 >> [b]
> [l:a,r:a] @ List(Plus(SingletonSpecies, SingletonSpecies)(String))

Having yet another parameter is something I don't actually quite like. I 
think it would be better to provide an easy way for the user to provide 
a map from the internal data structure to a visual form. That basically 
says that "<<" and coerce to OutputForm are just "stupid" default output 
routines that don't show smartly. But what would be an "easy way" for a 
user?
I'd really very very very much hesitate to put the output function into 
the domain constructor arguments. I'd rather opt for an output routine 
with parameters... but that needs more thought.

All the best
Ralf

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Aldor-combinat-devel mailing list
Aldor-combinat-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/aldor-combinat-devel

Reply via email to