From: Douglas K. <do...@go...> - 2014-05-11 00:09:03
|
Sharp-backquote is defined by rutils. It has nothing to do with backquote. By analogy with sharp-quote being a quote of a functional form, sharp-backquote produces functions that you don't wish to name whose parameters you also don't wish to name other than by % and %% being two positional parameters. Clojure has a similar concept. James Lawrence pointed out that Clojure gets use/mention similarly wrong - it fails to recognize when the % symbol has been quoted and will blindly stuff in the equivalent of a gensym in a not-for-evaluation position. On Sat, May 10, 2014 at 7:54 PM, Faré <fa...@gm...> wrote: > On Sat, May 10, 2014 at 4:03 PM, Douglas Katzman <do...@go...> wrote: > > Looks like we're just not getting the patch right, and that as a minor > > hindrance, changing a function that was set-macro-character'd into a > named > > readtable doesn't force recompilation of files that use the readtable. > So > > in part my testing has been bogus. > > > > To bring you up to speed: nothing has changed in SBCL in relation to > > backquote yet, though it might. I proactively suggested to the rutils > > maintainer that he could eliminate the assumption that SUBST was a > > "reasonable" way to perform alpha conversion of a lambda expression by > > instead using sb-walker in sbcl. Then I saw that my first patch - which I > > think was correct as it stood - was inconsistent with the behavior for > other > > lisps. #` is supposed to treat #`((foo) (bar)) as (progn (foo) (bar)) > which > > I failed to realize. > > I'll try one more time and make sure a forced recompile works. > > > Wait, where is that sharsign backquote thing defined??? > CLHS 2.4.8 says that it's undefined. > > If there's a standard for it somewhere, I'd like to know about it, > so I may implement it in fare-quasiquote. > > And yes, SUBST is a very bad way of doing alpha conversion: it goes > not only under BACKQUOTE, but under QUOTE — but not under #(), and > maybe maybe not under `#(). In other words, it SUCKS, and programs > that use it are probably buggy. > > —♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• > http://fare.tunes.org > You only have power over people as long as you don't take everything away > from them. But when you've robbed a man of everything he's no longer in > your power — he's free again. — Alexander Solzhenitsyn (1918–2008) > |