terpri has quit [Remote host closed the connection]
terpri has joined #lisp
efm has quit [Read error: Connection reset by peer]
gjulio has quit [Ping timeout: 246 seconds]
Oladon has quit [Quit: Leaving.]
orivej has quit [Ping timeout: 256 seconds]
efm has joined #lisp
orivej has joined #lisp
efm has quit [Remote host closed the connection]
wxie has joined #lisp
efm has joined #lisp
wxie has quit [Remote host closed the connection]
jeosol has quit [Remote host closed the connection]
efm has quit [Remote host closed the connection]
quazimodo has joined #lisp
nicktick has joined #lisp
efm has joined #lisp
Necktwi has joined #lisp
bitmapper has quit [Ping timeout: 258 seconds]
userone has joined #lisp
PuercoPop has joined #lisp
userone has quit [Quit: Leaving]
efm has quit [Read error: Connection reset by peer]
efm has joined #lisp
mathrick has quit [Ping timeout: 240 seconds]
gjulio has joined #lisp
ebt has joined #lisp
cyberbanjo_ has quit [Remote host closed the connection]
akoana has joined #lisp
cranes has quit [Ping timeout: 246 seconds]
mathrick has joined #lisp
jesse1010 has quit [Ping timeout: 264 seconds]
ebt has quit [Ping timeout: 245 seconds]
theseb has quit [Quit: Leaving]
Josh_2 has quit [Ping timeout: 256 seconds]
edgar-rft has joined #lisp
wxie has joined #lisp
wxie has quit [Ping timeout: 258 seconds]
wxie1 has joined #lisp
wxie1 is now known as wxie
ahungry has joined #lisp
z3t0 has joined #lisp
efm has quit [Ping timeout: 256 seconds]
akoana has left #lisp ["Leaving"]
Oladon has joined #lisp
Bike has quit [Quit: leaving]
ebrasca has joined #lisp
z3t0 has left #lisp ["ERC (IRC client for Emacs 26.3)"]
z3t0 has joined #lisp
karlosz has joined #lisp
JohnTalent has joined #lisp
orivej_ has joined #lisp
orivej has quit [Ping timeout: 264 seconds]
wxie has quit [Ping timeout: 256 seconds]
orivej_ has quit [Ping timeout: 240 seconds]
JohnTalent has quit [Ping timeout: 265 seconds]
orivej has joined #lisp
karlosz has quit [Quit: karlosz]
<beach>
Good morning everyone!
orivej has quit [Ping timeout: 264 seconds]
<aaaaaa>
beach: good morning. Long time no see
<beach>
That must be because of your absence. I've been here.
<aaaaaa>
beach: Yes. Been busy...
<beach>
You must have changed your nick too.
<aaaaaa>
beach: Yes. I was ArthurStrong
<beach>
Ah, I see now.
karlosz has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
xrash has quit [Ping timeout: 258 seconds]
<z3t0>
beach: morning!
JohnTalent has joined #lisp
<beach>
z3t0: [Looking at the channel logs] A few days ago, fbmnds showed up here to announce the intention of using EQL5 with ECL on Android etc. Not sure whether you are still interested in that stuff.
JohnTalent has quit [Quit: leaving]
seok has joined #lisp
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
<seok>
I'm thinking of not using a db and just using lisp objects
<beach>
Good idea.
<seok>
would this have lower throughput / performance for predicate based searches?
<seok>
compared to sql/ or other dbs
<beach>
How big is your data set?
<seok>
I dunno, I want to get it pretty big
<beach>
More than 10GB?
<seok>
let's say facebook or reddit ran in-memory on lisp
<seok>
I reckon id-based searches would do fine
<seok>
but concerned about comparison searches etc
<seok>
I don't think it will get bigger than 10gb soon, but in the future maybe?
dominic34 has quit [Ping timeout: 260 seconds]
<beach>
If things will fit in RAM, then I am guessing it will always be faster than a traditional relational database manager.
<seok>
Yes, that's what I'm expecting
<seok>
I don't see a reason why not
<seok>
To search for a row with a integer field between x and y, a traditional db still loops through the entire table doesn't it?
<beach>
I am no expert, so I won't attempt to guess.
<beach>
But whatever optimization tricks a database manager can do, you should be able to do as well, and faster.
<seok>
cool
shangul has joined #lisp
shangul has quit [Ping timeout: 258 seconds]
Kaisyu has joined #lisp
shangul has joined #lisp
seok has quit [Remote host closed the connection]
<z3t0>
beach: still very interested yes! I've been eyeing mocl even.
<z3t0>
is there somewhere I can read more about this?
clothespin has joined #lisp
clothespin_ has quit [Ping timeout: 244 seconds]
shangul has quit [Ping timeout: 256 seconds]
<beach>
Try the channel logs. I don't know anything more than that. Or perhaps jackdaniel knows more.
Oladon has quit [Quit: Leaving.]
<z3t0>
will do thanks
<z3t0>
On a sidenote, anyone here playing around with lisp and pinephones?
gravicappa has joined #lisp
ebt has joined #lisp
heisig has joined #lisp
wxie has joined #lisp
wxie has quit [Remote host closed the connection]
wxie has joined #lisp
OpenZen has quit [Ping timeout: 272 seconds]
MidHotaru has joined #lisp
narimiran has joined #lisp
libertyprime has quit [Remote host closed the connection]
<phoe>
minion: memo for seok: traditional DBs often use indices to speed up searches and avoid full loops over tables, so it is possible that an in-memory linear iteration over a whole table is going to be *slower* than database access that is logarithmic or better - that's a data structure problem
<minion>
Remembered. I'll tell seok when he/she/it next speaks.
marusich has joined #lisp
Archenoth has joined #lisp
dominic34 has quit [Ping timeout: 256 seconds]
vaporatorius__ has joined #lisp
frgo_ has quit [Remote host closed the connection]
vaporatorius has quit [Ping timeout: 272 seconds]
karlosz has quit [Quit: karlosz]
fbmnds has joined #lisp
<fbmnds>
good morning
quazimodo has quit [Remote host closed the connection]
<fbmnds>
beach: thank you for passing the topic to z3t0:
<beach>
fbmnds: Pleasure.
<fbmnds>
z3t0: afaik, there is not much published around EQL5 - I can recommend though the examples on https://gitlab.com/eql/EQL5
<fbmnds>
beach: I am checking the logs every once and a while - I am using the chat more like a black board
jprajzne has quit [Quit: jprajzne]
<beach>
I see.
<z3t0>
fbmnds: thanks, I have a project in mind where I want to write a kitchen sink android app for capturing tasks and notes temporarily. Didn't want to touch java... Hopefully EQL suits my use case
_jrjsmrtn has joined #lisp
__jrjsmrtn__ has quit [Ping timeout: 272 seconds]
stoneglass has joined #lisp
z3t0 has left #lisp ["ERC (IRC client for Emacs 26.3)"]
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
MidHotaru has quit [Quit: Connection closed for inactivity]
<phoe>
hey that's me
gravicappa has quit [Ping timeout: 272 seconds]
<fbmnds>
phoe: thought so
rogersm has joined #lisp
cosimone has joined #lisp
karlosz has quit [Quit: karlosz]
EvW has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
fbmnds has quit [Quit: Connection closed]
EvW has quit [Ping timeout: 256 seconds]
EvW1 has joined #lisp
clintm``` has joined #lisp
gravicappa has joined #lisp
clintm`` has quit [Ping timeout: 244 seconds]
vutral has quit [Ping timeout: 244 seconds]
billstclair has quit [Ping timeout: 244 seconds]
gjnoonan has quit [Ping timeout: 246 seconds]
XachX has quit [Ping timeout: 272 seconds]
vutral has joined #lisp
Fare has quit [Ping timeout: 260 seconds]
billstclair has joined #lisp
XachX has joined #lisp
Balooga has quit [Read error: Connection reset by peer]
drainful has joined #lisp
Balooga has joined #lisp
bhartrihari has left #lisp ["Disconnected: Broken pipe"]
gjnoonan has joined #lisp
gravicappa has quit [Ping timeout: 256 seconds]
cosimone has quit [Quit: Quit.]
cosimone has joined #lisp
pve has joined #lisp
bhartrihari has joined #lisp
seok has joined #lisp
<seok>
phoe: nice, thank you
<minion>
seok, memo from phoe: traditional DBs often use indices to speed up searches and avoid full loops over tables, so it is possible that an in-memory linear iteration over a whole table is going to be *slower* than database access that is logarithmic or better - that's a data structure problem
<seok>
I'm trying to look up on this topic, what would be the search keywords?
<seok>
do traditional databases create an index for every field so it can do sorts?
<phoe>
tl;dr you can define where indices should be created by the database, and that allows the DB to avoid full table scans. that's off-topic for #lisp, but that article should give you pointers and search keywords for future digging up
<phoe>
this article also compares SQL databases to NoSQL databases a little bit, and in-memory key-value stores are a form of NoSQL - hence further relevance to your topic
syminal has joined #lisp
EvW1 has quit [Remote host closed the connection]
syminal has quit [Client Quit]
ljavorsk has joined #lisp
ayuce has joined #lisp
cmatei has quit [Remote host closed the connection]
cosimone has quit [Quit: Quit.]
cmatei has joined #lisp
shangul has joined #lisp
datajerk has quit [Ping timeout: 256 seconds]
datajerk has joined #lisp
ebrasca has quit [Remote host closed the connection]
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
<pve>
Hi, is loading a source file equivalent to binding *package* and *readtable* and then doing roughly (do-until-eof (eval (read file-stream)))?
<beach>
Sounds about right. Why do you ask?
polaris has joined #lisp
edgar-rft has joined #lisp
<jdz>
There are also *load-pathname* and *load-truename*, and interaction with EVAL-WHEN I'm not quite sure about.
<pve>
beach: my toy language has a load-source-file function, and I was just considering how similar it is to CL:LOAD
<beach>
Hmm, OK.
<pve>
I mean, I suppose would like it to be as similar as possible
<beach>
If you want it to be as similar as possible, why don't you implement Common Lisp?
knuckles has quit [Ping timeout: 272 seconds]
<beach>
I should ask it differently: Why are you working on implementing a toy language?
knuckles has joined #lisp
drainful has quit [Ping timeout: 240 seconds]
<phoe>
beach: sounds like it's smalltalk-on-CL
<pve>
I'm simply exploring what it is like to build a language on top of CL
<beach>
OK.
<pve>
I'm now at the point where I can compile and load source files into my running lisp with C-c C-k, so I'm pretty happy with that
<pve>
"compile" meaning go from the smalltalk-like syntax to CL
<pve>
jdz: good point about *load-pathname* and *load-truename*
duuqnd has joined #lisp
clintm``` has quit [Ping timeout: 260 seconds]
jesse1010 has joined #lisp
nicktick has quit [Ping timeout: 264 seconds]
freshpassport has joined #lisp
i0_202365 has joined #lisp
<dim>
seok: about database vs lisp objects, the main question is about concurrency behavior. how do you intend to approach concurrent edits to the same objects from multiple threads? can you run more than one lisp image with the same dataset? that's where a database solves many problems, concurrent accesses to a single data set, with business guarantees (constraints), and then ACID is a nice set of properties to have, and all falls down from there, including SQL
<seok>
only intend to use one thread for writing
<dim>
SQL allows to send computations where the data is and in a way that remains ACID compliant, and makes it easy enough to reason about etc
<seok>
I don't think acid is so difficult to implement
<dim>
seok: if you have a solid answer then it's all good, I'm trying to say that this is the main question you should consider here, in my opinion
<dim>
ahahahahahah
<seok>
plus, I intend to write my application as append only
<seok>
I'm more concerned about throughput
<dim>
sorry about that, but yeah, sure, it took only years and years of very hard work from very talented people to implement ACID, and almost all implementations of it are buggy in different ways
<dim>
seok: if you think ACID isn't so difficult, may I suggest you spend some quality time reading https://jepsen.io ?
<seok>
Well, it probably is hard trying to write a general solution for acid indeed!
<dim>
if you can understand this article on the first read, then maybe you can implement your own acid needs yourself, otherwise I personnaly would not even try: https://jepsen.io/analyses/postgresql-12.3
<seok>
I agree with what you are saying that there are certainly bug-prone areas for a general solution database accommodating multiple read write clients,
<dim>
anyway, I got triggered with database vs internal in-memory objects, the trade-off is all about concurrency, that's my message ;-)
<seok>
but that's not what I'm trying to write though
vaporatorius__ has quit [Read error: Connection reset by peer]
cpt_nemo has quit [Ping timeout: 260 seconds]
<dim>
sounds good then, seems like you actually have a choice
<dim>
(I mean a choice that's different from implementing ACID yourself)
<seok>
I'm bit scared of running out of memory writing poor search solutions
<seok>
: (
cpt_nemo has joined #lisp
<seok>
I'm still reading the article phoe sent me xD
<dim>
PAIP has nice chapters all about solving search problems in lisp, including writing a prolog interpreter from scratch and then a compiler to optimise it
<seok>
At this stage, I'm wondering if sbcl's sort is suffice for large arrays
<seok>
Ah thank you
random-nick has joined #lisp
gxt has joined #lisp
<Harag>
seok: I run 10 mil records in a in memory database on sbcl no problem and searches can be done in sub seconds on 10 mil
<Harag>
sub second
<seok>
@Harag Thats great to hear!
<seok>
I don't need to do special indexing or anything?
<Harag>
seok: you can look at cl-naive-store
<Harag>
if you are not worried about creating duplicates then no indexing needed
<Harag>
and there is very little difference in scanning a list and array in sbcl
<Harag>
once again sub second
<seok>
but getting a value out of array is O(1) isn't it?
<Harag>
if you have the index
<seok>
yes
<Harag>
so you need indexing
<seok>
Sometimes I will have the index
<Harag>
then a hashtable would give more flexibility
<seok>
sometimes I will need to find a value
ym has joined #lisp
<Harag>
gives you "comprehensible" key/index
<Harag>
and once again the speed difference is small
<Harag>
seok we can take this off line if want to discuss it further, we are poluting ;)
<seok>
Sure!
<seok>
: D
vaporatorius__ has joined #lisp
mankaev has quit [Read error: Connection reset by peer]
mankaev has joined #lisp
gxt has quit [Quit: WeeChat 2.8]
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 264 seconds]
epony has quit [Quit: reconfigure]
Lord_of_Life_ is now known as Lord_of_Life
<seok>
How do I find out how much memory an object is using?
epony has joined #lisp
red-dot has joined #lisp
KingRiver has quit [Ping timeout: 258 seconds]
<red-dot>
Hola everyone. For those using gitlab.commonlisp.net: is there something special you need to do to fork a repository? All the fork buttons are greyed out for me.
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
<red-dot>
That's interesting. It looks like there are 0 forks of all the projects I looked at. Are forks disabled on gitlab.commonlisp.net? If so, how to people contribute improvements?
<phoe>
go to #common-lisp.net and ask ehuelsmann for boosting your repo limit
<phoe>
you can't fork because your default repo limit is at 0; AFAIK that's an unfortunate implication of spambots having it really really hard on clnet's gitlab
gravicappa has joined #lisp
bhartrihari has left #lisp ["Disconnected: Broken pipe"]
i0_202365 has quit [Remote host closed the connection]
<red-dot>
Thanks.
wxie has joined #lisp
cosimone has quit [Quit: Quit.]
brown121407 has joined #lisp
igemnace has quit [Quit: WeeChat 2.8]
Harag has quit [Remote host closed the connection]
ebrasca has joined #lisp
Harag has joined #lisp
frgo has joined #lisp
wxie has quit [Ping timeout: 260 seconds]
frgo has quit []
seok has quit [Remote host closed the connection]
polaris has quit [Ping timeout: 258 seconds]
heisig has quit [Ping timeout: 272 seconds]
polaris has joined #lisp
xrash has joined #lisp
stepnem has quit [Read error: Connection reset by peer]
seok has joined #lisp
stepnem has joined #lisp
Fare has joined #lisp
terpri_ has joined #lisp
<seok>
just noticed a fresh sbcl (room) returns this
<seok>
Dynamic space usage is: 80,281,232 bytes.
<ebrasca>
Do you know someting about syntax highlight for web pages? ( cl )
<seok>
Does this means a blank sbcl compiled will be 80mb?
<seok>
Or just the functions used?
freshpassport has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
katco has quit [Write error: Connection reset by peer]
camlriot42 has quit [Read error: Connection reset by peer]
userself has quit [Read error: Connection reset by peer]
liamz[m] has quit [Read error: Connection reset by peer]
Gnuxie[m] has quit [Write error: Connection reset by peer]
MrtnDk[m] has quit [Write error: Connection reset by peer]
unl0ckd has quit [Read error: Connection reset by peer]
cairn has quit [Read error: Connection reset by peer]
infra_red[m] has quit [Remote host closed the connection]
fountainpen[m] has quit [Read error: Connection reset by peer]
sammich has quit [Write error: Connection reset by peer]
hdasch has quit [Ping timeout: 264 seconds]
lukego has joined #lisp
rotty has joined #lisp
johs has joined #lisp
housel has joined #lisp
copec has joined #lisp
SomeB has joined #lisp
bytesighs has joined #lisp
saturn2 has joined #lisp
hdasch has joined #lisp
userself has joined #lisp
gjulio has joined #lisp
edgar-rft has joined #lisp
karlosz has joined #lisp
kalogik has joined #lisp
kalogik has quit [Client Quit]
kalogik has joined #lisp
kalogik has quit [Client Quit]
nikkal has joined #lisp
rgherdt has quit [Remote host closed the connection]
rgherdt has joined #lisp
rogersm has quit [Read error: Connection reset by peer]
rogersm has joined #lisp
gaqwas has joined #lisp
infra_red[m] has joined #lisp
even4void[m] has joined #lisp
Gnuxie[m] has joined #lisp
camlriot42 has joined #lisp
deselby has joined #lisp
MrtnDk[m] has joined #lisp
unl0ckd has joined #lisp
cairn has joined #lisp
katco has joined #lisp
sammich has joined #lisp
fountainpen[m] has joined #lisp
liamz[m] has joined #lisp
bhartrihari has left #lisp ["Disconnected: closed"]
kmeow has quit [Ping timeout: 260 seconds]
jasom has quit [Quit: WeeChat 2.8]
jasom has joined #lisp
marusich has joined #lisp
<cracauer>
hello
<duuqnd>
hi
<phoe>
heyyyy
<shka_>
hi
<aaaaaa>
Hi all. how do you serialize data to file? I just want (1.2) to be stored like the "(1.2)" string. and read it back then. I saw this in some lisp/scheme textbooks, but forgot.
<duuqnd>
PRINT works for simple stuff
<aaaaaa>
duuqnd: thanks
<Bike>
aaaaaa: specifically, use prin1 if you want lisp to be able to read it back.
<shka_>
print and read
<aaaaaa>
thanks
<Bike>
and bind *print-readably* to t
<aaaaaa>
!
<duuqnd>
If you ever want to serialize CLOS objects I'd recommend the library cl-store
dominic34 has quit [Ping timeout: 240 seconds]
gaqwas has quit [Remote host closed the connection]
narimiran has joined #lisp
gjulio has quit [Ping timeout: 246 seconds]
marusich has quit [Ping timeout: 244 seconds]
bocaneri has quit [Read error: Connection reset by peer]
orivej has quit [Ping timeout: 240 seconds]
theseb has joined #lisp
cosimone has quit [Quit: Quit.]
rogersm has quit [Quit: Leaving...]
_paul0 has quit [Remote host closed the connection]
paul0 has joined #lisp
gravicappa has joined #lisp
hiroaki has joined #lisp
nikkal has quit [Ping timeout: 240 seconds]
<Harag>
is there any statistics available for projects in quicklisp, specifically how many downloads of it?
<Harag>
Xach: is it a big job? I am considering trashing api compatibility for my project, and it should be ok since I dont think anybody but me uses it, I just wanted to be sure before I spoil some ones day.
z3t0 has joined #lisp
cosimone has joined #lisp
hiroaki has quit [Ping timeout: 246 seconds]
ahungry has quit [Remote host closed the connection]
seok has quit [Remote host closed the connection]
ahungry has joined #lisp
nikkal has joined #lisp
hiroaki has joined #lisp
_Posterdati_ has joined #lisp
Posterdati has quit [Ping timeout: 264 seconds]
_Posterdati_ is now known as Posterdati
duuqnd_ has joined #lisp
duuqnd has quit [Read error: Connection reset by peer]
Inline has joined #lisp
gaqwas has joined #lisp
gaqwas has joined #lisp
gaqwas has quit [Changing host]
edgar-rft has quit [Quit: Leaving]
gjulio has joined #lisp
efm has joined #lisp
nitrosun has joined #lisp
duuqnd_ has quit [Quit: Leaving]
nikkal has quit [Ping timeout: 246 seconds]
shka_ has quit [Ping timeout: 260 seconds]
nitrosun has quit [Quit: leaving]
rogersm has joined #lisp
brown121407 has quit [Remote host closed the connection]
wsinatra has quit [Quit: WeeChat 2.8]
xrash has quit [Read error: Connection reset by peer]
X-Scale` has joined #lisp
X-Scale has quit [Ping timeout: 264 seconds]
X-Scale` is now known as X-Scale
narimiran has quit [Ping timeout: 240 seconds]
Fare has quit [Ping timeout: 260 seconds]
jw4 has quit [Read error: Connection reset by peer]
Fare has joined #lisp
jw4 has joined #lisp
tychoish has joined #lisp
rogersm has quit [Remote host closed the connection]
<Xach>
Harag: it's a medium job
<Xach>
Harag: i'd argue for you not to trash it anyway, though!
ahungry has quit [Remote host closed the connection]
niceplace has quit [Ping timeout: 246 seconds]
niceplace has joined #lisp
Bike has quit [Read error: Connection reset by peer]
Bike_ has joined #lisp
whiteline has quit [Remote host closed the connection]
whiteline has joined #lisp
gravicappa has quit [Ping timeout: 246 seconds]
kaftejiman has quit [Remote host closed the connection]
gjulio has quit [Read error: Connection reset by peer]
gjulio has joined #lisp
gjulio has quit [Read error: Connection reset by peer]
rogersm has joined #lisp
ebrasca has quit [Remote host closed the connection]
rogersm has quit [Ping timeout: 258 seconds]
lnostdal has quit [Ping timeout: 258 seconds]
pve has quit [Quit: leaving]
<fe[nl]ix>
Xach: I'm in the process of rewriting Bordeaux-threads. the two implementations will coexist in different packages until I switch everybody to the new one
gjulio_ has joined #lisp
gjulio_ has quit [Remote host closed the connection]
X-Scale` has joined #lisp
gjulio_ has joined #lisp
X-Scale has quit [Ping timeout: 246 seconds]
X-Scale` is now known as X-Scale
lnostdal has joined #lisp
dominic34 has joined #lisp
Bike_ is now known as Bike
ayuce has quit [Remote host closed the connection]
gjulio__ has joined #lisp
gjulio_ has quit [Read error: Connection reset by peer]
cosimone_ has joined #lisp
red-dot has joined #lisp
dominic34 has quit [Ping timeout: 272 seconds]
<Harag>
Xach: yes I know that it would be the right thing to do but I really want to change some stuff, and really really dont want to start a new project :(
cosimone has quit [Ping timeout: 244 seconds]
hiroaki has quit [Ping timeout: 246 seconds]
<Harag>
maybe I can get away with a compatability layer...
Jesin has quit [Quit: Leaving]
gaqwas has quit [Remote host closed the connection]
cosimone_ is now known as cosimone
dominic34 has joined #lisp
Jesin has joined #lisp
markong has joined #lisp
markoong has quit [Ping timeout: 272 seconds]
sjl has quit [Ping timeout: 256 seconds]
rogersm has joined #lisp
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 240 seconds]
Lord_of_Life_ is now known as Lord_of_Life
rogersm has quit [Ping timeout: 258 seconds]
random-nick has quit [Ping timeout: 264 seconds]
asarch has joined #lisp
terpri_ is now known as terpri
nicktick has quit [Ping timeout: 264 seconds]
cosimone has quit [Ping timeout: 244 seconds]
quazimodo has joined #lisp
dominic34 has quit [Ping timeout: 258 seconds]
rgherdt has quit [Ping timeout: 246 seconds]
dominic34 has joined #lisp
<theseb>
Is it possible to use defvar, defparameter, or let multiple times with the SAME variable/symbol? even in the same function? you'll just keep creating a new variable right?
<Bike>
you shouldn't be using defvar or defparameter in function bodies.
<Bike>
if you have a let inside another let, any names in the inner let will shadow those in the outer let.
<Bike>
which is to say there will be distinct bindings.
<theseb>
ok thanks
<theseb>
Bike: what motivated this question is that it seems you can get by with never mutating....just declaring new variables
<theseb>
Bike: and since functional is trendy maybe that is even fashionable
aaaaaa has left #lisp [#lisp]
<Bike>
you don't need to mutate bindigns, sure. it's more like tail calls for control flow than nested bindings, though.
rogersm has joined #lisp
rogersm has quit [Ping timeout: 264 seconds]
<White_Flame>
mutation is a way to pass information to another piece of code irrespective of flow control
<White_Flame>
if your information passage is always well-known, then parameters & local variables/bindings can do it all
<White_Flame>
(and return values)
<|3b|>
also note that DEFVAR won't change an existing variable, and DEFPARAMETER is effectively mutation when the variable already exists
edgar-rft has joined #lisp
* |3b|
wonders if defparameter inside the scope of a dynamic binding of that variable modifies that binding or the global value
karlosz has quit [Remote host closed the connection]
orivej has joined #lisp
asarch has quit [Quit: Leaving]
efm has quit [Ping timeout: 264 seconds]
<|3b|>
seems to be local binding, not what i had originally guessed :)
akoana has joined #lisp
bsd4me has quit [Remote host closed the connection]