inconsistent definition of "sort" (and what about stability?)
Subject: inconsistent definition of "sort" (and what about stability?)
From: Oliver Kullmann
Date: Sun, 13 Nov 2011 10:16:38 +0000
On Sat, Nov 12, 2011 at 09:32:03PM -0800, Steve Haflich wrote:
> Raymond Toy <toy.raymond at gmail.com> wrote:
>
> (4) Use cl:stable-sort. (Perhaps that's what (1) is saying.)
>
> Certainly, but that addresses only one of the Kullmann's concerns. The
> guaranteed behavior with a sort function that provides only partial
> ordering is still effectively defined by the ANS, not the Maxima dos.
>
> This dependency of Maxima on ANSI CL might be seen as a deficiency in
> Maxima, but I propose that (where it can be) it is a useful partitioning
> of semantics. Maxima was first defined more than 40 years ago on a Lisp
> with irrational semantics. The Lisp community learned a lot between
> that time and the specification of ANSI CL (a little less than 20 years
> ago) and I propose that where ANSI CL semantics do not impinge on
> Maxima's focus on symbolic mathematics, ANSI CL semantics should be
> adopted. It simplifies the total universe.
I can understand the attempt to re-use semantical constructs, but one
should keep in mind:
- The Maxima documentation must stay independent of that (amongst other
things, otherwise it would become unreadable for almost all users).
- Since Maxima creates its own universe, a reasonable effort should
always be spent on taking that into account.
- Since standard-texts are highly circular and ambiguous, the contract
with the user of some component (typically a function) must be made
explicit (not left to "read the code" or "read that document").
Documentation should be an ongoing effort, permanently improved, for
example as the result of such a discussion.
Perhaps there are institutional barriers in the Maxima evironment,
preventing easy changes of documentation?
I guess the main problem is that the documentation does not happen
at the same place where the code is. Employing a system like
Doxygen could improve this. Yet, as it seems to me, the documentation
in Maxima is a separate world, perhaps mostly disregarded by the
experts.
Oliver