Sujet : Re: Simple problem in PG's ANSI Common Lisp
De : 643-408-1753 (at) *nospam* kylheku.com (Kaz Kylheku)
Groupes : comp.lang.lisp comp.lang.schemeDate : 26. Sep 2024, 04:56:44
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <20240925205452.294@kylheku.com>
References : 1
User-Agent : slrn/pre1.0.4-9 (Linux)
On 2024-09-26, B. Pym <
Nobody447095@here-nor-there.org> wrote:
paul graham wrote:
>
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
>
(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 ...))]))
TXR Lisp:
1> [mapcar + '(10 20 30) 0]
(10 21 32)
Given: TMF language, and that's it.
-- TXR Programming Language: http://nongnu.org/txrCygnal: Cygwin Native Application Library: http://kylheku.com/cygnalMastodon: @Kazinator@mstdn.ca