lambda expressions in plot2d and quadpack functions



hello,

at present plot2d (lambda ([x], ...), [x, a, b]) fails,
also quad_qags (lambda ([x], ...), x, a, b) and other quadpack functions.
i would like to suggest that those should succeed.

i wonder if anyone has an objection to extending COERCE-FLOAT-FUN
slightly to handle maxima lambda expressions, as shown in the attached patch.

best,
robert dodier

Index: plot.lisp
===================================================================
RCS file: /cvsroot/maxima/maxima/src/plot.lisp,v
retrieving revision 1.59
diff -u -r1.59 plot.lisp
--- plot.lisp   10 Jan 2006 06:32:55 -0000      1.59
+++ plot.lisp   12 Jan 2006 15:46:04 -0000
@@ -523,6 +523,18 @@
                                  ($float result)
                                  nil)))
                          'function)))))
+    ((and (consp expr) (eq (caar expr) 'lambda))
+     ; FOLLOWING CODE IS IDENTICAL TO CODE FOR EXPR = SYMBOL
+     ; (EXCEPT HERE WE HAVE EXPR INSTEAD OF MEXPR). DOUBTLESS BEST TO MERGE.
+               (let ((args (nth 1 expr)))
+                 (coerce `(lambda ,(cdr args)
+                           (declare (special ,@(cdr args)))
+                           (let* (($ratprint nil)
+                                  (result ($realpart (meval* ',(nth 2 expr)))))
+                             (if ($numberp result)
+                                 ($float result)
+                                 nil)))
+                         'function)))
        (t
         (let ((vars (or lvars ($sort ($listofvars expr))))
                                        ;(na (gensym "TMPF"))