On 2/21/24 18:04, Hill Strong wrote:
My count is that there are 24 occurrences of this particular combination.
There are other combinations that exist for which a named category is
available - one example is Join(LinearAggregate(S),   finiteAggregate)
which can be replaced with FiniteLinearAggregate(S). One place applicable
would be FiniteLinearAggregateFunctions2.

When I see this in code bases, it is an indicator that this should be
looked at and fixed appropriately.

Suppose there are two categories CatA and CatB and we define

CatAB: Category == Join(CatA, CatB)

You know that there is a little difference between

FooJ(D): Export == Implementation where
  D: Join(CatA, CatB)
  Export ==> ...
  Implementation ==> ...

and

FooC(D): Export == Implementation where
  D: CatAB
  Export ==> ...
  Implementation ==> ...

.

If we have

Dom: Join(CatA, CatB) == ...

then

FooJ(Dom) is OK, while FooC(Dom) is not.

In that sense the definition of FooJ is more general.

Yes, it may make sense to introduce specific categories, like CatAB,
but you then have to go through the whole FriCAS sources and figure out in which cases you might have to add something like CatAB to the exports of a certain domain (or category, and maybe even conditionally, i.e. depending on a domain parameter). That is doable, but sounds a bit error-prone. I don't even know whether it is easy to check that such a code modification did not introduce unwanted behaviour, because we might not yet have a test included for such circumstance.

Ralf

--
You received this message because you are subscribed to the Google Groups "FriCAS - 
computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/fricas-devel/a37b415c-7eb1-4cb6-8b37-f84f87f9bf5a%40hemmecke.org.

Reply via email to