jackdaniel changed the topic of #commonlisp to: Common Lisp, the #1=(programmable . #1#) programming language | Wiki: <https://www.cliki.net> | IRC Logs: <https://irclog.tymoon.eu/libera/%23commonlisp> | Cookbook: <https://lispcookbook.github.io/cl-cookbook> | Pastebin: <https://plaster.tymoon.eu/>
<mrcom> (if (foo) nil (...))
<bike> No
<bike> it's a special thing about cond
<bike> "If there are no forms in that clause [which evaluates to true], the primary value of the test-form is returned by the cond form."
<mrcom> Oh yeah... I see it now in the spe .
<mrcom> That's useful. I've been using acond for that.
amb007 has quit [Ping timeout: 260 seconds]
son0p has joined #commonlisp
awlygj has quit [Quit: leaving]
mesuutt has joined #commonlisp
ymir has quit [Ping timeout: 252 seconds]
mesuutt has quit [Ping timeout: 256 seconds]
trannus_aran has joined #commonlisp
rtypo has quit [Ping timeout: 256 seconds]
istewart has joined #commonlisp
trannus_aran has quit [Quit: leaving]
waleee has quit [Ping timeout: 252 seconds]
ronald has quit [Ping timeout: 256 seconds]
ronald has joined #commonlisp
lucasta has quit [Quit: Leaving]
mesuutt has joined #commonlisp
mesuutt has quit [Max SendQ exceeded]
ec_ has quit [Ping timeout: 260 seconds]
mesuutt has joined #commonlisp
mesuutt has quit [Ping timeout: 246 seconds]
puke has quit [Quit: puke]
puke has joined #commonlisp
puke has quit [Max SendQ exceeded]
puke has joined #commonlisp
ec has joined #commonlisp
puke has quit [Max SendQ exceeded]
puke has joined #commonlisp
amb007 has joined #commonlisp
amb007 has quit [Ping timeout: 256 seconds]
amb007 has joined #commonlisp
pfdietz has quit [Ping timeout: 250 seconds]
amb007 has quit [Ping timeout: 260 seconds]
random-nick has quit [Ping timeout: 256 seconds]
mesuutt has joined #commonlisp
mzan has joined #commonlisp
mesuutt has quit [Ping timeout: 260 seconds]
ymir has joined #commonlisp
green_ has quit [Quit: Leaving]
triffid has quit [Remote host closed the connection]
chiselfuse has quit [Remote host closed the connection]
chiselfuse has joined #commonlisp
triffid has joined #commonlisp
szkl has quit [Quit: Connection closed for inactivity]
mon_key has quit [Ping timeout: 255 seconds]
akoana has quit [Quit: leaving]
mesuutt has joined #commonlisp
ec has quit [Ping timeout: 260 seconds]
ec has joined #commonlisp
mesuutt has quit [Ping timeout: 264 seconds]
ymir has quit [Ping timeout: 240 seconds]
josrr has quit [Remote host closed the connection]
mesuutt has joined #commonlisp
mesuutt has quit [Ping timeout: 252 seconds]
green_ has joined #commonlisp
ronald has quit [Ping timeout: 256 seconds]
X-Scale has quit [Quit: Client closed]
bilegeek has joined #commonlisp
ronald has joined #commonlisp
Pixel_Outlaw has joined #commonlisp
jmercouris1 has joined #commonlisp
ymir has joined #commonlisp
jmercouris1 has quit [Quit: jmercouris1]
jmercouris1 has joined #commonlisp
jmercouris1 has quit [Quit: jmercouris1]
jmercouris1 has joined #commonlisp
<beach> The use of anaphoric macros, and indeed of this special COND case, encourages violations of the rules stated on page 13 of the LUV slides by Norvig and Pitman.
jmercouris1 has quit [Client Quit]
mesuutt has joined #commonlisp
mesuutt has quit [Ping timeout: 272 seconds]
danza_ has joined #commonlisp
emaczen has joined #commonlisp
shka has joined #commonlisp
szkl has joined #commonlisp
danza has joined #commonlisp
danza_ has quit [Read error: Connection reset by peer]
ymir has quit [Ping timeout: 256 seconds]
ymir has joined #commonlisp
mesuutt has joined #commonlisp
mesuutt has quit [Ping timeout: 264 seconds]
ymir has quit [Quit: Leaving.]
istewart has quit [Quit: Konversation terminated!]
amb007 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
synchrom1 has quit [Quit: WeeChat 4.0.5]
wacki has joined #commonlisp
danza_ has joined #commonlisp
emaczen has quit [Remote host closed the connection]
danza has quit [Ping timeout: 240 seconds]
amb007 has quit [Ping timeout: 268 seconds]
synchromesh has joined #commonlisp
amb007 has joined #commonlisp
mesuutt has joined #commonlisp
amb007 has quit [Ping timeout: 256 seconds]
amb007 has joined #commonlisp
mesuutt has quit [Ping timeout: 272 seconds]
Pixel_Outlaw has quit [Quit: Leaving]
poplin has quit [Ping timeout: 256 seconds]
poplin has joined #commonlisp
mgl_ has joined #commonlisp
mesuutt has joined #commonlisp
<younder> I think it is fair to say Paul Graham had his own ideas about how to use lisp. I would argue that overuse of macros can lead to unmaintainable code. It is hard to read code if the rules change all the time.
<younder> anaphoric macro's are in my mind OK though.
flip214 has quit [Read error: Connection reset by peer]
flip214 has joined #commonlisp
mesuutt has quit [Ping timeout: 252 seconds]
<beach> But the LUV slides are not about your mind. These are highly experienced developers who worked on professional projects in teams with many developers, and what they say is that if the rules on page 13 are violated, then some members of some of those teams will be slowed down when trying to read other people's code.
<pkal> Do I recall correctly, that in Let over Lambda there is a claim that the (one) correct way to use a language follows from the language itself? I'd have to look it up again, but what do people think of that?
<beach> So, you can use anaphoric macros as much as you want, but if you write code for others to read, you should know that there could be people out there who would be slowed doen.
<beach> *down
<beach> pkal: If I understand what you are saying, then that is totally wrong. The set of idiomatic phrases in a language is a tiny subset of the set of the grammatical phrases. This goes for natural languages and also programming languages.
<pkal> beach: that would be my intuition as well, but I thought there was some interesting argument in the book
<beach> I see.
<younder> It's more like a compromise. I think describing functions that change the syntax should never fill more than one page and that all developers should be committed to read it before reading the code.
<beach> younder: And I believe them, because I am such a person. Whenever I see something like (let ((object (find-object ...))) (if object....)) I have to pause for a while, rewrite the IF form in my head to read (if (null object) ..).
danza_ has quit [Ping timeout: 260 seconds]
<younder> But Lisp is typically used in much smaller groups than say Go which, by the way, enforces such rules.
<aeth> when you write macros, you have to write macros that look like someone else wrote them... or, better yet, that they were built-in
<aeth> you can fill your code with a dozen do-foo macros that look and behave like dolist and nobody's going to be confused even if they would've done it differently
<aeth> anaphoric macros are dangerous because they're typically clever
zxcvz has joined #commonlisp
zxcvz has quit [Client Quit]
<aeth> imo, it's when macros don't fit the do-/with-/define- patterns (that Emacs even syntax highlights for you) that the overuse can be really dangerous
pve has joined #commonlisp
alcor has joined #commonlisp
alcor has quit [Read error: Connection reset by peer]
<beach> I think that depends a lot. If the macro saves a lot of boilerplate code, then it might be easier for the person reading the code to learn what the macro does than to read all that boilerplate code.
<beach> Of course, the macro must then represent a true abstraction and it must have a relevant name.
<aeth> I think a saves-the-boilerplate macro is probably an iteration (do-foo) or ultimately calling make-instance or similar (define-foo) in most cases.
alcor has joined #commonlisp
<aeth> It would be interesting to do a survey of all-of-quicklisp to see if this is the case
<younder> Well the extreme is XML. It works OK in HTML, but gets ridiculous for a database declaration. You can't see the forest for the trees.
<aeth> XML/HTML templates as macros are another thing, but they don't seem too common in absolute numbers, and if you're using them (especially HTML) you're going to be well aware of them because they'll be a key part of what you're doing
Posterdati has quit [Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/]
<aeth> HTML-template-as-a-macro is probably the elevator pitch for what Common Lisp can do.
amb007 has quit [Ping timeout: 255 seconds]
amb007 has joined #commonlisp
Posterdati has joined #commonlisp
rgherdt has joined #commonlisp
<mrcom> I don't see '(acond ((gethash mykey cache1) (setf (foo-baz it) t)) ...'
<mrcom> as being harder for anyone to read than '(cond ((gethash mykey cache1) (setf (foo-baz (gethash mykey cache1)) t)) ..'
<mrcom> or any of the more efficient alternatives
makomo has joined #commonlisp
<mrcom> Hard-and-fast rules tend, in my experience opinion, to be more about a desire to pigeon-hole and over-classify than actual good ideas.
<beach> mrcom: Good for you. But the issue is with people who are not like you.
<mrcom> Is there *anyone* who would find the second way easier to mentally parse?
<beach> mrcom: You are giving one single example. I never said that all anaphoric macros are bad, only that they "tend to violate...". So even if there is not a single person as the one you requested, there can still be plenty of people for other cases.
<mrcom> Yes, you can overdo he anaphoric thing, but throwing out the baby with the bath water is silly.
<beach> And I don't think anybody has advocated that.
<mrcom> OK, I'm good with that. Hard-and-fast rules being a bad idea is itself a hard-and-fast rule.
rendar has quit [Quit: Leaving]
rendar has joined #commonlisp
bilegeek has quit [Quit: Leaving]
poplin has quit [Read error: Connection reset by peer]
poplin has joined #commonlisp
pranav has quit [Remote host closed the connection]
donleo has joined #commonlisp
<younder> Three meta levels are necessary and sufficient. For databases - Schema, Records, data. Also in math - Topology, Algebra, function. And in music - Harmony, Notes, tones. Why would it not be true of logic. There must be rules about what we should reason over.
donleo has quit [Remote host closed the connection]
donleo has joined #commonlisp
rgherdt has quit [Quit: Leaving]
rtypo has joined #commonlisp
jjnkn has joined #commonlisp
rgherdt has joined #commonlisp
<younder> DRY KISS AID ;)
amb007 has quit [Ping timeout: 272 seconds]
amb007 has joined #commonlisp
herjazz has joined #commonlisp
tok has joined #commonlisp
manwithluck has quit [Ping timeout: 260 seconds]
manwithluck has joined #commonlisp
poplin has quit [Ping timeout: 260 seconds]
poplin has joined #commonlisp
poplin has quit [Read error: Connection reset by peer]
poplin has joined #commonlisp
random-nick has joined #commonlisp
mesuutt has joined #commonlisp
thuna` has quit [Ping timeout: 252 seconds]
mesuutt has quit [Ping timeout: 240 seconds]
thuna` has joined #commonlisp
decweb has joined #commonlisp
cage has joined #commonlisp
pranav has joined #commonlisp
mm007emko has quit [Ping timeout: 264 seconds]
mm007emko has joined #commonlisp
mgl_ has quit [Ping timeout: 256 seconds]
puke has quit [Quit: puke]
puke has joined #commonlisp
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 255 seconds]
Lord_of_Life_ is now known as Lord_of_Life
mesuutt has joined #commonlisp
wacki has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
waleee has joined #commonlisp
mesuutt has quit [Ping timeout: 255 seconds]
msv has joined #commonlisp
wacki has joined #commonlisp
jjnkn has quit [Ping timeout: 264 seconds]
danza_ has joined #commonlisp
X-Scale has joined #commonlisp
waleee has quit [Ping timeout: 264 seconds]
amb007 has quit [Read error: Connection reset by peer]
mesuutt has joined #commonlisp
amb007 has joined #commonlisp
msv has quit [Remote host closed the connection]
mesuutt has quit [Ping timeout: 268 seconds]
msv has joined #commonlisp
jrx has joined #commonlisp
herjazz has quit [Quit: leaving]
jrx has quit [Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.2)]
amb007 has quit [Ping timeout: 268 seconds]
amb007 has joined #commonlisp
awlygj has joined #commonlisp
mm007emko has quit [Read error: Connection reset by peer]
mm007emko has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
mesuutt has joined #commonlisp
zxcvz has joined #commonlisp
zxcvz has quit [Client Quit]
mesuutt has quit [Ping timeout: 264 seconds]
chrcav has quit [Ping timeout: 255 seconds]
chrcav has joined #commonlisp
Noisytoot has quit [Excess Flood]
Noisytoot has joined #commonlisp
pfdietz has joined #commonlisp
josrr has joined #commonlisp
mgl_ has joined #commonlisp
edgar-rfx has joined #commonlisp
edgar-rft has quit [Ping timeout: 268 seconds]
waleee has joined #commonlisp
mesuutt has joined #commonlisp
yitzi has joined #commonlisp
mesuutt has quit [Ping timeout: 272 seconds]
igemnace has joined #commonlisp
n8n has quit [Quit: WeeChat 4.2.2]
pranav has quit [Remote host closed the connection]
randm has quit [Remote host closed the connection]
randm has joined #commonlisp
Inline has joined #commonlisp
synchromesh has quit [Read error: Connection reset by peer]
synchromesh has joined #commonlisp
pranav has joined #commonlisp
synchrom1 has joined #commonlisp
tok has quit [Ping timeout: 272 seconds]
amb007 has quit [Ping timeout: 255 seconds]
synchromesh has quit [Ping timeout: 256 seconds]
amb007 has joined #commonlisp
tedwing has joined #commonlisp
poplin has quit [Ping timeout: 255 seconds]
mesuutt has joined #commonlisp
poplin has joined #commonlisp
mesuutt has quit [Ping timeout: 252 seconds]
igemnace has quit [Read error: Connection reset by peer]
danza_ has quit [Read error: Connection reset by peer]
markb1 has joined #commonlisp
<yottabyte> I haven't used lem before, but is it similar to like company-mode? It seems like it has some that auto completion like stuff
igemnace has joined #commonlisp
Algernon69 has joined #commonlisp
waleee has quit [Ping timeout: 268 seconds]
Algernon69 has quit [Client Quit]
wacki has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
wacki has joined #commonlisp
rendar has quit [Ping timeout: 260 seconds]
poplin has quit [Ping timeout: 252 seconds]
mesuutt has joined #commonlisp
poplin has joined #commonlisp
mesuutt has quit [Ping timeout: 260 seconds]
Inline has quit [Quit: Leaving]
rendar has joined #commonlisp
Noisytoot has quit [Quit: ZNC 1.8.2 - https://znc.in]
Noisytoot has joined #commonlisp
McParen has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 29.2]
xlymian has joined #commonlisp
poplin has quit [Read error: Connection reset by peer]
n8n has joined #commonlisp
poplin has joined #commonlisp
mesuutt has joined #commonlisp
X-Scale has quit [Quit: Client closed]
bjorkintosh has quit [Quit: "Every day, computers are making people easier to use." David Temkin]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
mesuutt has quit [Ping timeout: 264 seconds]
wacki has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
bjorkintosh has joined #commonlisp
poplin has quit [Ping timeout: 256 seconds]
poplin has joined #commonlisp
mesuutt has joined #commonlisp
istewart has joined #commonlisp
mesuutt has quit [Ping timeout: 255 seconds]
wacki has joined #commonlisp
xlymian has quit [Ping timeout: 260 seconds]
rtypo has quit [Quit: WeeChat 4.2.2]
Inline has joined #commonlisp
varjag has joined #commonlisp
tedwing has quit [Ping timeout: 256 seconds]
mesuutt has joined #commonlisp
tedwing has joined #commonlisp
edgar-rfx is now known as edgar-rft
mesuutt has quit [Ping timeout: 256 seconds]
igemnace has quit [Quit: WeeChat 4.2.2]
poplin has quit [Read error: Connection reset by peer]
poplin has joined #commonlisp
random-nick has quit [Quit: quit]
random-nick has joined #commonlisp
jon_atack has quit [Ping timeout: 246 seconds]
zetef has joined #commonlisp
jonatack has joined #commonlisp
waleee has joined #commonlisp
jonatack has quit [Ping timeout: 246 seconds]
zetef has quit [Ping timeout: 246 seconds]
mesuutt has joined #commonlisp
mesuutt has quit [Ping timeout: 240 seconds]
dtman34 has quit [Ping timeout: 268 seconds]
dtman34 has joined #commonlisp
yitzi has quit [Remote host closed the connection]
mgl_ has quit [Ping timeout: 264 seconds]
Odin- has quit [Quit: Which button?]
X-Scale has joined #commonlisp
prokhor has quit [Remote host closed the connection]
mgl_ has joined #commonlisp
reb has joined #commonlisp
mesuutt has joined #commonlisp
rendar has quit [Quit: Leaving]
mesuutt has quit [Ping timeout: 255 seconds]
rendar has joined #commonlisp
McParen has left #commonlisp [#commonlisp]
awlygj has quit [Quit: leaving]
rendar has quit [Ping timeout: 268 seconds]
rendar has joined #commonlisp
rendar has quit [Changing host]
rendar has joined #commonlisp
anticomputer has quit [Ping timeout: 260 seconds]
anticomputer has joined #commonlisp
mesuutt has joined #commonlisp
shka has quit [Ping timeout: 252 seconds]
mesuutt has quit [Ping timeout: 260 seconds]
dom2 has quit [Ping timeout: 264 seconds]
dom2 has joined #commonlisp
mgl_ has quit [Ping timeout: 252 seconds]
tedwing has quit [Ping timeout: 268 seconds]
mesuutt has joined #commonlisp
thuna` has quit [Ping timeout: 264 seconds]
mesuutt has quit [Ping timeout: 252 seconds]
zetef has joined #commonlisp
wacki has quit [Read error: Connection reset by peer]
varjag has quit [Ping timeout: 255 seconds]
wacki has joined #commonlisp
varjag has joined #commonlisp
anticomputer_ has joined #commonlisp
anticomputer has quit [Ping timeout: 260 seconds]
triffid has quit [Ping timeout: 260 seconds]
chiselfuse has quit [Ping timeout: 260 seconds]
chiselfuse has joined #commonlisp
amb007 has quit [Ping timeout: 255 seconds]
Pixel_Outlaw has joined #commonlisp
wacki has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
triffid has joined #commonlisp
thuna` has joined #commonlisp
jonatack has joined #commonlisp
mesuutt has joined #commonlisp
mesuutt has quit [Ping timeout: 252 seconds]
poplin has quit [Read error: Connection reset by peer]
poplin has joined #commonlisp
tedwing has joined #commonlisp
dino_tutter has quit [Ping timeout: 255 seconds]
amb007 has joined #commonlisp
mesuutt has joined #commonlisp
rgherdt has quit [Quit: Leaving]
amb007 has quit [Ping timeout: 256 seconds]
mesuutt has quit [Ping timeout: 272 seconds]
tedwing has quit [Quit: leaving]
jonatack has quit [Ping timeout: 260 seconds]
<paulapatience> I mean, Lem is an editor and company-mode is an Emacs package. Not sure if you meant beyond that obvious distinction.
Shmill has joined #commonlisp
zetef has quit [Remote host closed the connection]
pve has quit [Quit: leaving]
Shmill has quit [Quit: Client closed]
Shmill has joined #commonlisp
donleo has quit [Ping timeout: 264 seconds]
n8n has quit [Quit: WeeChat 4.2.2]
varjag has quit [Ping timeout: 260 seconds]
Shmill has quit [Quit: Client closed]
Shmill has joined #commonlisp
Renfield has quit [Quit: Leaving]
waleee has quit [Ping timeout: 268 seconds]
mgl_ has joined #commonlisp