A generic operation can be specialized for a particular abstract data structure. Example: sum of a set.
(redefpatterns 'loop '( ((sum ?set) (make-loop ?set ?item (?total) (setq ?total 0) (incf ?total ?item) ?total) t ((?item (gentemp "ITEM")) (?total (gentemp "TOTAL"))) ) ) ) (redefpatterns 'list '( ((make-loop ?lst ?item ?vars ?init ?action ?result) (let (?ptr ?item . ?vars) ?init (setq ?ptr ?lst) (while ?ptr (setq ?item (first ?ptr)) (setq ?ptr (rest ?ptr)) ?action) ?result) t ((?ptr (gentemp "PTR"))) ) ) )
Contents    Page-10    Prev    Next    Page+10    Index