From: Rainer Schöpf <rainer.schoepf@gm...>  20120823 20:08:56

On Thu, 23 Aug 2012 at 20:24 +0100, Arthur Norman wrote: > Thank you for both the bug report and for pointing out exactly where > something needed changing. The problem arose because a floating point > number ends up represented internally by something that is a "sort of" > prefix form but the data in it is chain terminating on a number not on > "nil". So freeof!dfl [as you observed] crashed on it. Umm. This gets around the crashing, but freeof!df doesn't process correctly special prefix forms in its first parameter. Consider: load_package sum; operator f; lisp freeof!df(aeval '(df (f u v) u v),'v); % > t lisp freeof!df(reval '(df (f u v) u v),'v); % > nil although both should evaluate to nil. So I propose something like symbolic procedure freeof!df(u, v); % check u contains differential operator with respect to v; if atom u or car u eq '!:dn!: or get(car u,'dname) then t else if car u eq '!*sq then freeof!df(prepsq cadr u,v) else if car(u) eq 'df then freeof!df(cadr u,v) and not smember(v,cddr u) else freeof!dfl(cdr u,v); Rainer 