#lisp - Tue 8 May 2007 between 15:29 and 15:52

plutonasXach: lol :-D
that was my mistake
in writting the exercise with the keyboard
kpreidplutonas: think about what lst might be.
it can be either nil or a cons?
twbAh, I know.
kpreidno, this is a macro
ModiusCall lst list - shine the one edge you have over Scheme with pride!
kpreidso lst is something that occurs in the source
it's often a symbol, but not always
twbplutonas: it's to do with one of the big gotchas in unhygienic macros.
kpreidthink about the case where it isn't a macro
er, isn't a symbol
plutonaskpreid: what can it be? a variable?
oh no
that is a symbol too right?
a function?
kpreid(a symbol can be a variable or a symbol-macro)
plutonashm, i don't know about symbol-macros yet
kpreidthat's OK, you don't need to for this problem
here's a silly example:
(push 1 (elt lists (incf i)))
that definition of push will do something definitely wrong here
bfeinor (push 3 "I am not a list")
Xofok, I understand why, I think. And, guess what, it's to do with cacheing
bfeinactually that might work hehe
kpreidbfein: nah, that'll just tell you a string isn't a place
plutonasbfein: in the last example that doest work on normal push too
bfeinfine fine, I'll stop jumping in without thinking
jonphilpottsomebody call security
plutonaskpreid: and your example does the same as normal push
it creates a cons on the place
i do not understand
rahulplutonas: no, it evaluates the code that computes place twice
bfeinwould the (incf i) be evaluated twice?
twbShould slime be taking a good 20 to 30 seconds to inspect a package's list of external symbols, with only 3500 exported symbols?
antifuchsILTWYS "only" (:
twbOh, and using SBCL 1.0.

Page: 2 9 16 23 30 37