Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
;; This file:
;;   http://anggtwu.net/MAXIMA/lazynouns.lisp.html
;;   http://anggtwu.net/MAXIMA/lazynouns.lisp
;;          (find-angg "MAXIMA/lazynouns.lisp")
;; Author: Eduardo Ochs <eduardoochs@gmail.com>
;;
;; Introduction
;; ============
;; This file defines "lazy nouns" for "diff", "integrate", and "*".
;; Nouns are "less active" than verbs.
;; Lazy nouns are "less active" than nouns.
;; Nouns do some simplifications.
;; My lazy nouns don't simplify anything.
;;
;; Compare:
;;    diff(f(x),x)  <- here  "diff" is a verb
;;   'diff(f(x),x)  <- here "'diff" is a noun
;;    diff(x^3,x)   <- calculates a derivative
;;   'diff(x^3,x)   <- returns an uncalculated derivative
;;    diff(1,x)     <- simplifies to 0
;;   'diff(1,x)     <- also simplifies to 0 =(
;;   _diff(1,x)     <- returns d1/dx, does not simplify
;;
;; See: (find-maximanode "Nouns and Verbs")
;;      (find-angg "MAXIMA/dim-2.lisp")
;;
;; «.lazy-ops»		(to "lazy-ops")
;; «.vira»		(to "vira")
;; «.vira-tests»	(to "vira-tests")

(defun my-copy-properties (tosymbol fromsymbol keys)
  (loop for key in keys
	do (setf (get tosymbol key) (get fromsymbol key))))

;; (my-copy-properties '$diff_      '%derivative '(dimension tex))
;; (my-copy-properties '$integrate_ '%integrate  '(dimension tex))

(my-copy-properties '$_diff      '%derivative '(dimension tex))
(my-copy-properties '$_integrate '%integrate  '(dimension tex))


;; «lazy-ops»  (to ".lazy-ops")
;; (find-maxima-links "*")
;; (find-maxima-links "/")
;; (find-maxima-links "+")
;; (find-maxima-links "-")
;; Why the "$nary"s?

;; ($infix "*." 120 120)
($infix "*." 120)
($nary  "*.")
(my-copy-properties '|$*.| 'mtimes
		    '($nary lbp rbp
		      dimension dissym
		      tex texsym))

($infix "/." 120 120)
($nary  "/.")
(my-copy-properties '|$/.| 'mquotient
		    '($nary lbp rbp
		      dimension dissym
		      tex texsym))

($infix "+." 100 134)
($nary  "+.")
(my-copy-properties '|$+.| 'mplus
		    '($nary lbp rbp
		      dimension dissym
		      tex texsym))

($infix "-." 100 134)
($nary  "-.")
(my-copy-properties '|$-.| 'mminus
		    '($nary lbp rbp
		      dimension dissym
		      tex texsym))

#|
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
load("lazynouns.lisp");

[o1,o2] : [2*x^3, 1];
matrix(["", "diff",    "'diff",     "diff_"],
       [o1, diff(o1,x), 'diff(o1,x), diff_(o1,x)],
       [o2, diff(o2,x), 'diff(o2,x), diff_(o2,x)]);

[o1,o2] : [2*f(x), 2*x];
matrix(["", "integrate",    "'integrate",     "integrate_"],
       [o1, integrate(o1,x), 'integrate(o1,x), integrate_(o1,x)],
       [o2, integrate(o2,x), 'integrate(o2,x), integrate_(o2,x)]);

matrix(["*", "*."],
       [2*3*4*5, 2*.3*.4*.5],
       [a*c*d*b, a*.c*.d*.b]);

(-2) /  (-3);
(-2) /. (-3);
(-2) -. (-3) -. (-4);

|#


;; «vira»  (to ".vira")
;; (find-es "maxima" "stringdisp-mdefine")
(displa-def $vira dimension-infix " := " 80 80)
(defprop $vira tex-infix tex)
(defprop $vira (" := ") texsym)

(displa-def $becomes dimension-infix " := " 80 80)
(defprop $becomes tex-infix tex)
(defprop $becomes (" := ") texsym)

#|
** «vira-tests»  (to ".vira-tests")
* (eepitch-sbcl)
* (eepitch-kill)
* (eepitch-sbcl)
(load "lazynouns.lisp")

|#