Hi Nathan --

> I was thinking of our find_stat battle from one week ago, and I
> wondered if you could answer the questions I raised in my answer to
> your post. In particular (but not only) about the methods added to
> Graph and Poset ?...

Given the level of "shrillness" to which you certainly contributed, I
didn't actually plan to answer again. But okay...

I keep voting for having the methods added to Graphs and to Posets. I
just looked again at the list of methods for graphs, and there are 280
of them. For me (and some others, whichever reason we might have)
these two methods are useful for our "mathematics research" and that
makes it already a strong case for keeping them. If you feel like
there are too many methods, why not deleting "am" as a shortcut for
"adjacency_matrix", or replacing the almost 50 "is_???" by
"has_property(???)", including "antisymmetric" which should rather be
"is_antisymmetric", or replacing all "to_???" by a single method. If
there is a majority to delete them, or a particular reason why exactly
these methods out of the 280 should be deleted (I do not see either of
the two in this discussion currently), I would certainly be okay with
doing so. Simply "you want these methods for a 3rd party project, and
I don't like that" is not convincing to me.


Concerning the general design of the combinatorial_map decorator: I
implemented it in a way which did not interfere with other peoples
code or usage of Sage AND it made Sage better for several users. I
think that makes it a valid contribution.

It might have downsides. But you basically wrote "I don't like it the
way it is done" without giving any reason. An example: You mentioned
that it does run code each time the method is called, and this cannot
be avoided in the current implementation. This is true for ANY method
in Sage, with or without this decorator.
You and others asked if it slows down the methods or the
initialization of objects, and we did disprove both.
You said that you do not like decorators, that's okay but your
personal preference.
You do not like that the method gets a thin layer around, but you did
not argue why this is (or might become) a problem - so far, the
infected methods seemed to be doing okay.

If you do not like its design (for whatever reason), feel free to
provide improvements and discuss your improvements (I did ask about
the combiatorial_map decorator at various occasions, including the
mailing list, and no one complained). However such improvements might
look like, I want to stay able to ask which methods for a
"combinatorial set" are maps to "combinatorial sets" (see the method
combinat.combinatorial_map.combinatorial_maps_in_class), and (though
this would only come in a little while in the current implementation)
I want to tag such maps with mathematical information (okay, the
docstring could be used for such information, but this could become
complicated since the docstring is then used to provide the user with
infos, and to be (partially) machine interpretable at the same time).

Cheers, Christian

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to