Edge case in SRFI-139 Jakub T. Jankiewicz (28 Jan 2024 11:46 UTC)
Re: Edge case in SRFI-139 Marc Nieper-Wißkirchen (28 Jan 2024 12:31 UTC)
Re: Edge case in SRFI-139 Jakub T. Jankiewicz (28 Jan 2024 14:09 UTC)
Re: Edge case in SRFI-139 Marc Nieper-Wißkirchen (28 Jan 2024 14:43 UTC)
Re: Edge case in SRFI-139 Jakub T. Jankiewicz (28 Jan 2024 16:12 UTC)
Re: Edge case in SRFI-139 Marc Nieper-Wißkirchen (28 Jan 2024 16:20 UTC)
Re: Edge case in SRFI-139 Jakub T. Jankiewicz (28 Jan 2024 16:22 UTC)
Re: Edge case in SRFI-139 Marc Nieper-Wißkirchen (28 Jan 2024 16:28 UTC)
Re: Edge case in SRFI-139 Jakub T. Jankiewicz (28 Jan 2024 17:56 UTC)
Re: Edge case in SRFI-139 Jakub T. Jankiewicz (28 Jan 2024 16:39 UTC)
Re: Edge case in SRFI-139 Shawn Wagner (28 Jan 2024 16:57 UTC)

Edge case in SRFI-139 Jakub T. Jankiewicz 28 Jan 2024 11:45 UTC

Hi,

What should be the output of this code:

(define (print x . rest)
  (apply display x rest)
  (newline))

(define-syntax foo
  (syntax-rules ()
    ((_ body ...)
     (begin
       (syntax-parameterize
        ((it (syntax-rules ()
               ((_) "hello world"))))
        (print it)
        body ...)))))

(let ((it 10))
  (foo (print it)))

I only tested in two implementations Chibi and Guile.
Guile give an error but Chibi first print 10.

My implementation prints 10 10.

Jakub

--
Jakub T. Jankiewicz, Senior Front-End Developer
https://jcubic.pl/me
https://lips.js.org
https://koduj.org