freenode/lisp - IRC Chatlog
Search
1:31:20
makomo
i won't spoil the fun of figuring out what the 2nd argument in a ONCE-ONLY spec does :-)
1:31:39
makomo
usually you do (once-only (a b c) ...), but that's just a shorthand for (once-only ((a a) (b b) (c c)) ...)
1:32:09
elderK
If I write ,@,@something as (unquote-splice (unquote-splice something)), it's clear that the right-most ,@ is evaluated first
1:33:08
makomo
yeah, it's important to be consistent. whenever you use (outer/inner)most, you're referring to the backquote/comma pair
1:33:27
makomo
so the outermost backquote is the leftmost one, but the outermost comma is the rightmost one
1:33:54
elderK
That's what gets me, you see. If I had ``,@,@s I'd expect the left-most ,@ to be done first, because "innermost BQ is expanded first."
1:34:43
elderK
So, ``,@,@s "expands innermost first" into `(backquote (unquote-splice (unquote-splice s))
1:34:46
makomo
yeah, that's exactly what expansion does -- reads it in into an actual form ("longhand")
1:35:38
elderK
So then, a macro, it "expands." And that makes sense, because it's generating a "longer form", which is later eavluated.
1:36:16
makomo
indeed, although the two expansions happen at different levels. the backquote expansion happens at read-time, while macroexpansion happens at compile-time (macroexpansion-time)
1:37:30
elderK
Ah, I see. For some reason, I thought macro-expansion happened at... I guess, read time. I didn't realize read was split from compile
1:38:29
makomo
yup. many other languages don't have the concept of a "reader" -- their compilers operate directly on the textual input (internally it is "read" into an AST, but the user doesn't see this difference)
1:38:59
NoNumber
Is there a way to see all the objects a symbol points to? For example, I have "x" as a global variable but I also have it inside a closure which has x as a different value, AND I have x as a function. This may be useless but I'm curious. Sorry if this is a dumb question
1:39:43
makomo
by the time EVAL/COMPILE are called, you're literally giving them lists (as the reader already read the text into actual in-memory objects)
1:42:52
makomo
NoNumber: if you're using SLIME, you can use slime-describe-symbol to see the various bindings (in the global environment) that have that symbol as their name
1:43:30
makomo
for example, after (defvar hi) and (defmacro hi ...), slime-describe-symbol gives me "HI names a special variable: ... HI names a macro: ..."
1:45:45
NoNumber
makomo: Thanks, this might be useful in aiding my understanding of closures and bindings, and whatnot
1:46:24
equwal
elderk: About your screen. If you are on emacs there is a package for rotating the windows with a hotkey, which you can use to make them vertical instead (assuming you are viewing the ctl1 from within emacs with w3m or something, which is how I would do it).
5:23:05
elderK
Abstract Algebra. I got a lot out of it. More philosophical than I thought it would be.
6:26:06
graftin
Is it better to get packages from Quicklisp or Guix? If I get a package from Guix, I can include it in my config.scm, but IDK how often they're updated compared to Quicklisp.
9:36:08
svillemot
I get an internal server error when trying to submit an issue on gitlab.common-lisp.net ; is there a maintenance going on?
9:36:40
mfiano
Is there any workaround to be able to use DESTRUCTURING-BIND to destructure the car/cdr of a possibly NIL value? (destructuring-bind (foo . bar) value) fails on nil
9:41:02
mfiano
It's been a while since I used CL. I almost forgot destructuring lambda lists were almost identical to macro lambda lists. Thanks!
12:18:31
ogamita
hajovonta: it's useless to "re", since irc already tells us: *** hajovonta (~hajovonta@business-89-135-192-225.business.broadband.hu) has joined channel #lisp
12:23:50
hajovonta
back in the old days, in the previous millennia, we used to say "re" when reconnected
12:59:24
jcowan
IRC tells us, but what it tells us can't usually be trusted, what with bouncers and automatically-reconnecting clients. "re" says you're there in person.
13:13:28
jackdaniel
otherwise what's the point of it? 400+ people saying re may get tedious if we follow proactive convention
13:18:44
hajovonta
sometimes connection drop is only momentary but several minutes have to pass for IRC server to timeout your connection
13:20:23
jackdaniel
I believe that there is a fine spot between efficiency and politeness and being radical in any direciton leads to an unbearable situation
13:21:01
hajovonta
back in the old days i used IRCNET and there was no nickserv, so we could be in a channel with multiple nicks especially on modem and other unstable connection types
13:21:37
hajovonta
I guess nickserv doesn't prevent me from using multiple nicks either, but I'm too lazy to set up alternative nicknames