libera/#commonlisp - IRC Chatlog
Search
16:30:00
jackdaniel
I have a special place in my heart for people who have no doubts about being right; not a soft spot, mind that :)
17:07:59
cmack
I won't go that far. Even if I disagree, I still enjoy thinking privately about why and still periodically asking myself "am I missing anything?"
18:30:16
cdegroot
Also, for my own code, I often (well... usually) explicitly break all the rules. It's a good teacher on _why_ some rules are a good idea :). I like the "essential rule" best.
21:08:25
aeth
I would agree on LOOP, but if you need LOOP's collect/append, there's no real way around it
21:09:02
aeth
And there are so, so many times where you need to conditionally collect and/or append (even messier to avoid LOOP if you need to conditionally do either one of the two in the same loop)
21:20:16
aeth
Yes, but LOOP is a standard way to have an arbitrarily complex conditional collect and/or append into one or more lists that's almost certainly going to be one of the most efficient ways to do it in the implementation.
21:21:05
aeth
The downsides being that it's annoying to use logic inside of a LOOP and that it's annoying to handle multiple return values inside of a LOOP
22:09:19
decweb
If my collection logic is complex I'll often just use `serapeum:with-collector`, perhaps more than one.
22:09:53
decweb
The convenience of `LOOP COLLECT` and should be similar efficiency, but more flexibility at the cost of the WITH form.
22:28:39
aeth
I personally don't pull in nontrivial dependencies (except for the ones so common that everyone will include, such as alexandria and uiop; although alexandria is bordering on trivial)
22:31:23
aeth
For instance, I've read the entire source of float-features and it doesn't depend on anything big.