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 ;;;; rapply and other recursive stuff
(defun rapply (op &rest args) (defun rapply (op &rest args)
(if (null (cadr args)) (if (null (cdr args))
(rcall op (car args)) (rcall op (car args))
;(apply #'rapply (lambda (x) (funcall op (car args) x)) (cdr 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) (defgeneric rcall (op arg)
@ -74,6 +76,12 @@
(:method (op (arg list)) (:method (op (arg list))
(mapcar (lambda (i) (rcall op i)) arg))) (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) (defgeneric rlambda (op arg)
(:method (op arg) (lambda (j) (funcall op arg j))) (:method (op arg) (lambda (j) (funcall op arg j)))
(:method (op (arg list)) (:method (op (arg list))