On Sun, May 07, 2023 at 09:06:21PM +0300, Dmitry Alexandrov wrote: > On Fri, 05 May 2023 16:35 Ludovic Courtès <civo...@toot.aquilenet.fr> wrote: > > (call-with-input-string "(. wtf?)" read) > > > > ⇒ wtf? > > > > #Guile #Scheme > > Hey!^W Sorry... > > Dear Guile developer, > > your tweet made me deeply concerned. Is it a sign that this behaviour is > going to be ‘fixed’ eventually? > > Besides actually being (imho) the only right thing to do: explanation below > aside, just compare: > #+begin_src scheme > (define (fu bar) ...) > (λ (bar) ...) > (define (fu . quux) ...) > (λ (. quux) ...) > #+end_src > > it is required for compatibility with elisp; where itʼs not only observed > de-facto: > #+begin_src elisp > '(. foo) > ;; ⇒ foo > #+end_src > > but explicitly documented in (info "(elisp) Dotted Pair Notation") as well: > #+begin_quote > As a somewhat peculiar side effect of ‘(a b . c)’ and ‘(a . (b . c))’ > being equivalent, for consistency this means that if you replace ‘b’ > here with the empty sequence, then it follows that ‘(a . c)’ and ‘(a . ( > . c))’ are equivalent, too. This also means that ‘( . c)’ is equivalent > to ‘c’, but this is seldom used. > #+end_quote
You seem to be somewhat upset, but I don't quite understand what your gripe is. Is it the (define (...) ...) shorthand function definition in Guile? Is it Guile's incompatibility with Emacs Lisp (no wonder: the first is a Scheme, the second a Lisp: they are related, but pretty different)? Could you explain a bit better? Cheers -- t
signature.asc
Description: PGP signature