<aeth>
I guess everyone really does have extremely, extremely different architectures to approach games
Gleefre has joined #commonlisp
shka has joined #commonlisp
igemnace has quit [Remote host closed the connection]
dino_tutter has joined #commonlisp
Inline has quit [Quit: Leaving]
waleee has joined #commonlisp
dinomug has quit [Remote host closed the connection]
poww0wmus1c has joined #commonlisp
<poww0wmus1c>
How do you properly pass a lambda construct to a function? Sometimes I see (foo #'(lambda ...)), but I think (foo (lambda ...)) also works. Is that true? Is there a difference?
<beach>
poww0wmus1c: You can forget about #'(lambda...).
<beach>
poww0wmus1c: LAMBDA is a macro so that (LAMBDA (...) ...) expands to (FUNCTION (LAMBDA (...) ...)).
<beach>
poww0wmus1c: And in #'(lambda (...) ...), #' is a reader macro so the reader returns (FUNCTION (LAMBDA (...) ...)).
<beach>
poww0wmus1c: Does that make sense? We had a very long discussion with lispmacs[work] yesterday on this very subject.
<beach>
poww0wmus1c: You can try it out by typing (macroexpand-1 '(lambda (x) x)) to the REPL.
<poww0wmus1c>
The result of that is #'(LAMBDA (X) X) in the REPL. Expanding that result in turn gives #<FUNCTION (LAMBDA (X)) {some-number}>.
<beach>
How did you "expand that result"?
<poww0wmus1c>
macroexpand-1
<beach>
You mean (macroexpand-1 #'(LAMBDA (X) X))?
<poww0wmus1c>
Yes
<beach>
That's very different. What you did was to evaluate #'(LAMBDA (X) X) which evaluates to a function.
<beach>
... printed as #<FUNCTION...>
<beach>
And calling MACROEXPAND-1 on an atom like that will result in the same thing.
<beach>
If you want to check out what MACROEXPAND-1 does, you should give it a macro form, which is usually a list where the first element is a symbol naming a macro.
<beach>
But the important part here is that LAMBDA is a macro so that (LAMBDA (...) ...) expands to (FUNCTION (LAMBDA (...) ...) which is the same as what you get when you type #'(LAMBDA (...) ...).
<beach>
Therefore, you never need to type #'(LAMBDA (...) ...).
<poww0wmus1c>
So with #'(lambda ...), the reader macro is used to obtain (function (lambda ...)), whereas with (lambda ...), the macro bound to the symbol lambda is used to obtain the same result?
<beach>
Yes.
<beach>
You got it.
<poww0wmus1c>
Yay :)
<poww0wmus1c>
Thank you
<beach>
Pleasure.
random-nick has joined #commonlisp
jeffrey has joined #commonlisp
anticrisis has quit [Read error: Connection reset by peer]
habamax has quit [Remote host closed the connection]
JuanDaugherty has joined #commonlisp
Lycurgus has joined #commonlisp
yitzi has joined #commonlisp
OlCe has quit [Remote host closed the connection]
random-jellyfish has joined #commonlisp
cstub has joined #commonlisp
Lycurgus has quit [Quit: leaving]
JuanDaugherty has quit [Quit: JuanDaugherty]
jonatack has joined #commonlisp
jon_atack has quit [Ping timeout: 264 seconds]
rgherdt has joined #commonlisp
cstub has quit [Quit: Leaving]
alphacentauri has quit [Quit: WeeChat 4.1.0]
dino_tutter has quit [Ping timeout: 258 seconds]
random-jellyfish has quit [Ping timeout: 258 seconds]
Algernon69 has joined #commonlisp
bjorkint0sh has quit [Quit: Leaving]
wonko-the-sane has quit [Ping timeout: 256 seconds]
bjorkintosh has joined #commonlisp
bjorkintosh has joined #commonlisp
X-Scale has joined #commonlisp
igemnace has joined #commonlisp
amb007 has quit [Ping timeout: 240 seconds]
larix1 has joined #commonlisp
tyson2 has joined #commonlisp
elevenkb has left #commonlisp [ERC 5.6-git (IRC client for GNU Emacs 30.0.50)]
Algernon69 has quit [Quit: Leaving]
alphacentauri has joined #commonlisp
igemnace has quit [Remote host closed the connection]
dcb has joined #commonlisp
amb007 has joined #commonlisp
_dcb has joined #commonlisp
dcb has quit [Read error: Connection reset by peer]
igemnace has joined #commonlisp
dom2 has joined #commonlisp
igemnace has quit [Remote host closed the connection]
alphacentauri has quit [Quit: WeeChat 4.1.0]
waleee has joined #commonlisp
dino_tutter has joined #commonlisp
notzmv has quit [Ping timeout: 258 seconds]
attila_lendvai_ has joined #commonlisp
notzmv has joined #commonlisp
rogersm has joined #commonlisp
Gleefre has quit [Remote host closed the connection]
mgl has joined #commonlisp
simendsjo has joined #commonlisp
simendsjo has quit [Remote host closed the connection]
sjl_ is now known as sjl
cstub has joined #commonlisp
simendsjo has joined #commonlisp
doyougnu has quit [Ping timeout: 255 seconds]
rakka has joined #commonlisp
rcharles has joined #commonlisp
rgherdt has quit [Ping timeout: 264 seconds]
cstub has quit [Read error: Connection reset by peer]
rcharles has left #commonlisp [Using Circe, the loveliest of all IRC clients]
cstub has joined #commonlisp
skin has left #commonlisp [#commonlisp]
doyougnu has joined #commonlisp
X-Scale11 has joined #commonlisp
X-Scale has quit [Ping timeout: 248 seconds]
mgl has quit [Ping timeout: 255 seconds]
msavoritias has quit [Remote host closed the connection]
X-Scale has joined #commonlisp
rtypo has joined #commonlisp
X-Scale11 has quit [Ping timeout: 248 seconds]
zxcvz has joined #commonlisp
anticrisis has joined #commonlisp
_dcb is now known as dcb
notzmv has quit [Ping timeout: 240 seconds]
zxcvz has quit [Quit: zxcvz]
lucasta has joined #commonlisp
notzmv has joined #commonlisp
mgl has joined #commonlisp
notzmv has quit [Ping timeout: 246 seconds]
elevenkb has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
cage has quit [Quit: rcirc on GNU Emacs 29.1]
santiagopim has joined #commonlisp
zxcvz has joined #commonlisp
zxcvz has quit [Client Quit]
X-Scale8 has joined #commonlisp
puke has quit [Quit: puke]
X-Scale has quit [Ping timeout: 248 seconds]
puke has joined #commonlisp
mgl has quit [Ping timeout: 246 seconds]
kurfen has quit [Ping timeout: 260 seconds]
X-Scale8 has quit [Ping timeout: 248 seconds]
X-Scale has joined #commonlisp
cstub has quit [Ping timeout: 245 seconds]
drewjose3 has joined #commonlisp
drewjose has quit [Ping timeout: 255 seconds]
drewjose3 is now known as drewjose
random-jellyfish has joined #commonlisp
random-jellyfish has joined #commonlisp
skin has joined #commonlisp
mgl has joined #commonlisp
contrapunctus has left #commonlisp [#commonlisp]
<skin>
I want to run FSet's `setup-readtable` function that adds `#[]`, `#{| |}` and `#{}` syntax to the readtable, and then use that syntax in the file. How can I tell SBCL to run `setup-readtable` at file load time, before the rest of the file is loaded? Right now, it loads the file, and then chokes on the extra syntax.
<bike>
when you load a _source_ file, your lisp will read each form one at a time, and then evaluate them. so if you put your readtable stuff before the stuff using that readtable it should be fine.
mgl has quit [Ping timeout: 255 seconds]
<bike>
with the understanding that if you do (progn (setup-readtable ...) (whatever #[...])) there will still be problems, since the progn is read first
<mfiano>
Also note that if this syntax is intended to be used by users of your library, they will have to do the same.
<bike>
but are you actually loading a source file, or are you doing compile-file or what
X-Scale has quit [Quit: Client closed]
Gleefre has joined #commonlisp
jonatack has quit [Ping timeout: 255 seconds]
jonatack has joined #commonlisp
simendsjo has quit [Ping timeout: 248 seconds]
azimut has quit [Ping timeout: 256 seconds]
<skin>
I have sbcl up, and I run `(asdf:test-system "mysystem")`, and it chokes on the syntax even though I have `(fset:setup-fset-readtable *readtable*)` at the top of the file.
<bike>
okay, well asdf is probably going to compile the file before loading it, if you didn't do anything fancy.
<bike>
try replacing that form with (eval-when (:compile-toplevel :load-toplevel :execute) (fset:setup-fset-readtable *readtable*))
<bike>
that'll tell the compiler to install the readtable before compiling the rest
<ixelp>
GitHub - melisgl/named-readtables: The official repo of named-readtables.
<bike>
no idea how that would work with fset
shka has quit [Quit: Konversation terminated!]
shka has joined #commonlisp
wonko-the-sane has joined #commonlisp
wonko-the-sane has quit [Remote host closed the connection]
tyson2 has joined #commonlisp
wonko-the-sane has joined #commonlisp
random-jellyfish has quit [Ping timeout: 260 seconds]
shka has quit [Ping timeout: 248 seconds]
elevenkb has left #commonlisp [ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.1)]
elevenkb has joined #commonlisp
notzmv has joined #commonlisp
lucasta has quit [Quit: Leaving]
borodust has quit [Quit: Leavin']
borodust has joined #commonlisp
<skin>
I'll take a look at that. No, it's at the top of the test file.
<bike>
well what that manual section is referring to is that *Readtable* is rebound around load (and compile-file for that matter) so if you change readtable in one file that won't affect others.
<bike>
if you mutate the readtable that shouldn't be a problem, but mutating the one readtable is a little non cooperative
rtypo has quit [Ping timeout: 258 seconds]
<jcowan>
Unfortunately this prevents you from loading a file that installs your personal changes to the readtable.
Pixel_Outlaw has joined #commonlisp
habamax has joined #commonlisp
pve has quit [Quit: leaving]
rgherdt has joined #commonlisp
attila_lendvai_ has quit [Ping timeout: 240 seconds]
dino_tutter has quit [Ping timeout: 240 seconds]
ldb has joined #commonlisp
dom2 has quit [Remote host closed the connection]
notzmv has quit [Remote host closed the connection]
girf has joined #commonlisp
random-nick has quit [Ping timeout: 248 seconds]
notzmv has joined #commonlisp
donleo has quit [Ping timeout: 272 seconds]
flip214 has quit [Read error: Connection reset by peer]