improvement, start fixing - should work with more than 2 params

This commit is contained in:
Helmut Merz 2025-05-23 16:52:37 +02:00
parent c78fe13247
commit 8ae0ab9271

View file

@ -63,10 +63,12 @@
;;;; rapply and other recursive stuff
(defun rapply (op &rest args)
(if (null (cadr args))
(if (null (cdr args))
(rcall op (car args))
;(apply #'rapply (lambda (x) (funcall op (car args) x)) (cdr args))
(apply #'rapply (rlambda op (car args)) (cdr args))
;(apply #'rapply (rlambda op (car args)) (cdr args))
;(funcall op (car args) (apply #'rapply op (cdr args)))
(rcall2 op (car args) (apply #'rapply op (cdr args)))
))
(defgeneric rcall (op arg)
@ -74,6 +76,12 @@
(:method (op (arg list))
(mapcar (lambda (i) (rcall op i)) arg)))
(defgeneric rcall2 (op arg1 arg2)
(:method (op arg1 arg2)
(rcall (lambda (j) (funcall op arg1 j)) arg2))
(:method (op (arg1 list) arg2)
(mapcar (lambda (i) (rcall (lambda (j) (funcall op i j)) arg2)) arg1)))
(defgeneric rlambda (op arg)
(:method (op arg) (lambda (j) (funcall op arg j)))
(:method (op (arg list))