B. Pym
2024-09-26 02:17:26 UTC
Or you could write
(defun pos+ (lst)
(let ((i -1))
(mapcar #'(lambda (x) (+ x (incf i)))
lst)))
Btw, in Arc that would be
(def pos+ (lst)
(let i -1
(map [+ _ (++ i)] lst)))
Gauche Scheme(defun pos+ (lst)
(let ((i -1))
(mapcar #'(lambda (x) (+ x (incf i)))
lst)))
Btw, in Arc that would be
(def pos+ (lst)
(let i -1
(map [+ _ (++ i)] lst)))
(define (pos+ lst)
(let1 i -1
(map (~> (+ (inc! i))) lst)))
Given:
(define-syntax ->
(syntax-rules ()
[(_ x) x]
[(_ x (y more ...) z ...)
(-> (y x more ...) z ...)]
[(_ x y z ...)
(-> (y x) z ...)]))
(define-syntax ~>
(syntax-rules ()
[(_ (func0 a ...) func ...)
(lambda xs (-> (apply func0 (append xs (list a ...))) func ...))]
[(_ func0 func ...)
(lambda xs (-> (apply func0 xs) func ...))]))