Linear display not correct?



Ray wrote:
> I think it's a bug.  We shouldn't be printing out Lisp symbols for
> these things.  It seems all that's required is to add a reversealias
> property to the symbol's plist.  Not sure if that's the correct
> solution.  Need to look at what linear display does....

Adding a reversealias would work, but this has to be done for a lot of functions
and the property reversealias has the side effect that the concept of quoting is
changed for the function. But perhaps that is a bug too.

Here a sample session:

/* First the problem with the linear display */
(%i7) kill(all);
(%o0) done
(%i1) display2d:false;
(%o1) false
(%i2) bessel_j(n,z);
(%o2) ?%bessel_j(n,z)

/* Example of quoting to prevent evaluation */
(%i5) '(bessel_j(1,0.5));
(%o5) bessel_j(1,0.5)

/* We give the alias and reversalias */
(%i7) :lisp (alias '$bessel_j '%bessel_j)
%BESSEL_J

/* The linear display is o.k */
(%i7) bessel_j(n,z);
(%o7) bessel_j(n,z)

/* But the concept of quoting don't work no longer */
(%i8) '(bessel_j(1,0.5));
(%o8) 0.24226845767487

I have seen this problems because I am working on a batcj file in which I would
do something like:

is function(arg) equal '(function(arg))

This test should ensure that the simplifier returns the orginal function without
any simplification. But I have also to solve the problem that the evaluated
function is something like ((%function simp) arg) and the quoted function looks
like (($function) arg). Is there a more simple way to do such a test?

Dieter Kaiser