freenode/#lisp - IRC Chatlog
Search
23:19:30
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?
23:20:22
Bike
if you have a let inside another let, any names in the inner let will shadow those in the outer let.
23:23:11
theseb
Bike: what motivated this question is that it seems you can get by with never mutating....just declaring new variables
23:23:51
Bike
you don't need to mutate bindigns, sure. it's more like tail calls for control flow than nested bindings, though.
23:44:06
White_Flame
mutation is a way to pass information to another piece of code irrespective of flow control
23:44:36
White_Flame
if your information passage is always well-known, then parameters & local variables/bindings can do it all
23:48:02
|3b|
also note that DEFVAR won't change an existing variable, and DEFPARAMETER is effectively mutation when the variable already exists
23:48:28
|3b|
ACTION wonders if defparameter inside the scope of a dynamic binding of that variable modifies that binding or the global value
0:15:13
|3b|
if other people want to use it, they might not have QL, or might not have a network connection
0:17:31
|3b|
ACTION frequently has a ql:quickload form in a comment or #- in new projects so i can manually evaluate it to easily load the dependencies before i get around to writing an .asd file though
0:19:54
White_Flame
|3b|: the defparameter would basically perform a setf if it already exists, so affecting the current binding makes sense
0:21:14
|3b|
if it did setf of symbol-value it would affect the global binding, setf of name directly would be local, i guessed global since i think of it in terms of global variables, but spec says name
0:35:00
White_Flame
the biggest problem with trying to read backwards is the stupid CRLF that some files use
0:35:13
White_Flame
if you can guarantee a LF character, then you could scan backwards for X number of those
0:36:20
White_Flame
if you're sorting strings, then it's up to you to do the zero padding or conversion to numbers
0:37:20
White_Flame
but if you're not sorting it yourself, then you cannot rely on the ordering of files being consistent
0:41:30
seok
What's the best library for storing simple lisp objects, no functions or clos, into files?
0:49:57
White_Flame
printers of FP numbers have generated ascii representations that can be read back in bit-for-bit matching for decades now
0:51:07
|3b|
just make sure you include type in the ascii (1f0 or 1d0 instead of 1.0 etc) or READ with same default float format
0:55:01
|3b|
might also look at WITH-STANDARD-IO-SYNTAX when using write/read for data files, so you can try to have a consistent state more easily
5:17:15
alandipert
beach oh you know, very slowly :-) working on the best way to support multiple values currently
6:47:16
easye
If one applies CL:REVERSE to a vector specialized on a given type (unsigned-byte 32), is a conforming implementation allowed to return an unspecialized result?
6:50:21
easye
From <http://www.lispworks.com/documentation/HyperSpec/Body/f_revers.htm>, a conforming implementation has to have an "actual array element type" so I'm judging the answer to be yes.
6:53:36
phoe
so, "For reverse, if sequence is a vector, the result is a fresh simple array of rank one that has the same actual array element type as sequence."
6:54:10
phoe
"For reverse, if sequence is a vector, the result is a fresh simple array of rank one that has the same type for which the array is actually specialized as the input sequence."
6:54:25
phoe
so I read it as: if you pass a specialized vector of ub32, then the result must also be a specialized vector of ub32
7:05:19
phoe
if your answer is "yes, the implementation is allowed to return an unspecialized result" then I guess I disagree
7:05:54
easye
No, I agree that having CL:REVERSE return an unspecialized type for a specialized argument would be non-conforming.
9:01:01
Harag
ok is there a way to maybe swop out two methods and runtime and then swop them back with the mop?
9:03:29
beach
Heh, you need the "Incless" library that is not finished yet, but that would allow you to play tricks like that.
9:12:37
Harag
is incless taking over printing "control" using shadowing and then giving its own implementation?
9:24:25
beach
So the print-object methods trampoline to a generic function print-object-using-client.
9:25:18
beach
So you would put a method on print-object-using-client with a client that alters the printing as you want.
9:25:52
beach
Then when you want the altered behavior, you bind INCLESS:*CLIENT* to the one that behaves like that.
9:27:02
beach
I think we (collectively) are getting the hang of creating implementation-independent libraries. :)
9:31:38
phoe
you don't need to make a fancy name for first-class global environment because "class" already contains the "cl" substring that is required
10:30:07
flip214
beach: no. My wife is a nurse, and daughter is becoming one, so I'm hearing stuff like that a lot.