puke has quit [Killed (mercury.libera.chat (Nickname regained by services))]
pyooque is now known as puke
LainIwakura has joined #commonlisp
pyooque has joined #commonlisp
puke has quit [Killed (zirconium.libera.chat (Nickname regained by services))]
pyooque is now known as puke
yitzi has quit [Read error: Connection reset by peer]
yitzi has joined #commonlisp
yitzi has quit [Client Quit]
yitzi has joined #commonlisp
Lycurgus has joined #commonlisp
mooseball has joined #commonlisp
jonatack has joined #commonlisp
King_julian has quit [Read error: Connection reset by peer]
yitzi has quit [Read error: Connection reset by peer]
yitzi has joined #commonlisp
yitzi has quit [Client Quit]
yitzi has joined #commonlisp
King_julian has joined #commonlisp
jon_atack has joined #commonlisp
admich1 has quit [Ping timeout: 272 seconds]
jonatack has quit [Ping timeout: 240 seconds]
<yitzi>
gilberth: you around?
<gilberth>
T
admich1 has joined #commonlisp
treflip has quit [Ping timeout: 252 seconds]
<yitzi>
I just did a survey of the usage of path iteration syntax. There are two forms. The THE/EACH phrase is needed to distingish between them. The thing is, I can't find anybody using the second syntax. This goes all the way back to Lisp Machine, Genera, etc. It is mentioned in the Lisp Machine Manual, but thats it. If I don't support it in Khazern I could make the THE/EACH optional...
<yitzi>
So the sequence iterator would just be (LOOP FOR x BEING ELEMENTS IN seq ...)
<yitzi>
And I've got a hash-table iterator that becomes: (loop for (k v) being entries in ht ...)
<gilberth>
What you mean by "nobody"? Have you scanned all the code in Quicklisp or something?
<yitzi>
I looked through all CL implementations and did code searchs on GitLab and GitHub.
<gilberth>
I see.
<yitzi>
So, what do you think of that level of verbosity? Does it make it easier to understand?
<inline>
the is for types right ?
<gilberth>
Well. First of all I'm not a friend of LOOP in general, my relationship with it is "complicated". However, the BEING does seem like a more general means to extend LOOP this is what speaks for it. On the other hand I still think that the OVER of jackdaniel and me would be nice it rhymes with IN/ACROSS/ON and me thinks that iterating over a sequence is common enough to warrant stealing a "top level" LOOP keyword.
<yitzi>
inline: Don't know what you mean.
<gilberth>
What speaks for OVER as well is that I can easily s/IN/OVER/ or s/ACROSS/OVER/ to make some existing LOOP just work with sequences. In case someone said IN or ACROSS just because LOOP doesn't have a sequence iteration, but any sequence would be fine there. I often enough want to have a more general interface and then resort to MAP.
<gilberth>
So, yes, I personally don't like the verbosity of FOR x BEING ELEMENTS OF y. Heh, can't we have both? Everyone will be happy then.
<inline>
give it english lingo and make it generic yeh
<yitzi>
gilberth: You can add whatever subclause you want to khazern's FOR-AS so of course you can add OVER.
inline has quit [Quit: Leaving]
puke has quit [Remote host closed the connection]
puke has joined #commonlisp
<yitzi>
Yeah, took me like 4 lines of code and I made OVER an abbreviation for BEING ELEMENTS OF
<gilberth>
Wow!
Thermoriax has quit [Remote host closed the connection]
<yitzi>
beach: Yes, also an abbreviation including the THE
puke has quit [Ping timeout: 240 seconds]
veqq has joined #commonlisp
<yitzi>
gilberth: with that OVER would also do multidimensional arrays.
puke has joined #commonlisp
puke has quit [Remote host closed the connection]
jonatack has joined #commonlisp
Lycurgus has quit [Quit: irc.renjuan.org (juan@acm.org)]
jon_atack has quit [Ping timeout: 260 seconds]
TactfulCitrus has joined #commonlisp
jon_atack has joined #commonlisp
X-Scale has quit [Ping timeout: 260 seconds]
jeffrey has quit [Quit: jeffrey]
jonatack has quit [Ping timeout: 240 seconds]
mooseball has quit [Quit: Leaving]
jeffrey has joined #commonlisp
inline has joined #commonlisp
jeffrey has quit [Ping timeout: 252 seconds]
<Shinmera>
The FOR package also uses OVER as a "generic iteration" keyword.
<Shinmera>
... for whatever that's worth
<acdw>
we still talkin about iteration in here ?
<acdw>
my one thing with ITERATE and FOR is that they seem to make LOOP "more lispy" but only halfway. there's still funky syntax like (for ((x in list)) ...) i guess, would thre be a way to prefix-notate that? maybe not
<acdw>
looping, it's complicated huhh
LainIwakura has joined #commonlisp
<dlowe>
sure, easily, but it wouldn't read nearly as easily
<acdw>
yeah
apac has quit [Ping timeout: 252 seconds]
<dlowe>
I think the ultimate in lispy iteration readability is probably SERIES
<dlowe>
and I always meant to write an SBCL-specific version that didn't suffer from the library's problems
jonatack has joined #commonlisp
TactfulCitrus has quit [Ping timeout: 265 seconds]
jon_atack has quit [Ping timeout: 265 seconds]
<acdw>
i've heard series is very good
Everything has quit [Quit: leaving]
<dlowe>
it's very good but it depends heavily on shadowing CL symbols and if you load something that isn't part of that shadowing it will break if you use that thing dynamically inside a series expression
<acdw>
oh gosh
<acdw>
is that bc it was going to be part of cl ?
<yitzi>
It might have good algorithm ideas, but it's got terrible design choices.
<acdw>
aw
<dlowe>
no, it's just there wasn't another way to get it working without it being part of cl
<acdw>
oh
<dlowe>
it analyzes the data streams and converts them into iterations
<dlowe>
but it has to instrument functions and variables to do so
<acdw>
ohhh ok
jon_atack has joined #commonlisp
jonatack has quit [Ping timeout: 248 seconds]
cage has joined #commonlisp
LainIwakura has quit [Ping timeout: 272 seconds]
Noisytoot has quit [Remote host closed the connection]
LainIwakura has joined #commonlisp
jonatack has joined #commonlisp
jon_atack has quit [Ping timeout: 252 seconds]
jon_atack has joined #commonlisp
jonatack has quit [Ping timeout: 240 seconds]
rgherdt has quit [Read error: No route to host]
rgherdt has joined #commonlisp
jeffrey has joined #commonlisp
LainIwakura has quit [Quit: Client closed]
LainIwakura has joined #commonlisp
LainIwakura has quit [Client Quit]
undermine has quit [Quit: Bye]
skin has joined #commonlisp
Noisytoot has joined #commonlisp
X-Scale has joined #commonlisp
Noisytoot has quit [Remote host closed the connection]
Noisytoot has joined #commonlisp
cmack has joined #commonlisp
zxcvz has joined #commonlisp
zxcvz has quit [Quit: zxcvz]
veqq has quit [Quit: veqq]
veqq has joined #commonlisp
admich1 has quit [Ping timeout: 260 seconds]
admich1 has joined #commonlisp
jon_atack has quit [Ping timeout: 252 seconds]
stanrifkin has joined #commonlisp
apac has joined #commonlisp
inline_ has joined #commonlisp
inline has quit [Ping timeout: 276 seconds]
skin has quit [Ping timeout: 252 seconds]
skin has joined #commonlisp
dnhester26 has joined #commonlisp
dnhester26 has quit [Remote host closed the connection]
<aeth>
I have a design for an iteration macro that reduces the infixish stuff, but it makes it more syntactically complicated (and also unpronouncable unless you treat it like LOOP)
<aeth>
so e.g. (:up i 4) instead of loop's (... :for i :below 4 ...) but then the more complex case has to be something like (:up i (1 5 2)) for loop's (... :for i :from 1 :below 5 :by 2 ...)
<aeth>
It's also _not_ extensible in order to get things to be keyword-based, unlike iterate's goal.
rgherdt has quit [Remote host closed the connection]
Noisytoot has quit [Remote host closed the connection]
stanrifkin has quit [Quit: Leaving]
apac has quit [Quit: Konversation terminated!]
Noisytoot has joined #commonlisp
Noisytoot has quit [Read error: Connection reset by peer]
Noisytoot_ has joined #commonlisp
Noisytoot_ is now known as Noisytoot
Noisytoot has quit [Ping timeout: 240 seconds]
Noisytoot has joined #commonlisp
jon_atack has joined #commonlisp
jonatack has quit [Ping timeout: 252 seconds]
lcn_ has quit [Remote host closed the connection]
Noisytoot has quit [Read error: Connection reset by peer]
Noisytoot has joined #commonlisp
admich1 has quit [Ping timeout: 252 seconds]
admich1 has joined #commonlisp
dra has quit [Ping timeout: 272 seconds]
<phantomics>
Is there a preferred way to set a dynamic variable on a per-file basis? This is for files that may be loaded and evaled and need to have some particular unique bindings inside
jonatack has joined #commonlisp
<phantomics>
The way I'm currently approaching is is to have (defvar *foo*) in an initial file setting the variable, then at the top of the first file I have (setf *foo* :type-1) and at the top of the second file I have (setf *foo* :type-2)
<phantomics>
I'm thinking whether there could be any downsides to this