freenode/#lisp - IRC Chatlog
Search
7:10:20
poorbean
hi I'm new in lisp, but python in mit is very bad to me. C beginning book is better, but I don't know which book is good? Thanks
7:15:20
poorbean
Hi beach can you help me, I'm Chinese. But I don't know the good book in begin when someone to competition?
7:15:38
Shinmera
I wonder why it happens so often that scheme people tumble in here when there's literally a channel called #scheme.
7:16:11
beach
poorbean: Like I said, this channel is dedicated to Common Lisp. If you want help with Common Lisp books, this is the right place to ask.
7:16:26
beach
poorbean: But if you want advice about Scheme books, you are better off asking in #scheme.
7:23:04
beach
jackdaniel: I was merely pointing out that whether this or that language is "a Lisp" is not something that is widely agreed upon.
7:38:38
Fare
poorbean, Scheme books for beginners include How to Design Programs, The Little Schemer.
10:43:15
minion
why Lisp: The first chapter of Practical Common Lisp: http://www.gigamonkeys.com/book/introduction-why-lisp.html
10:46:47
Younder
I take it from flip214 that I need to speak perfectly conceptually clear. And I rely on the spell checker because a simple comma can label me as an idiot,'
10:47:59
Younder
I take it from flip214 that I need to speak perfectly conceptually clear. And if I rely on the spell checker because of a simple comma can label you can still me as an idiot.
11:12:28
myrkraverk
The colon in question is inside " "s, so I really don't understand the error message.
11:20:42
Younder
Whatever, on a remote terminal, vim with syntasic is just about the best you can get.
11:26:42
Shinmera
Tramp is basically just an mode for emacs that copies the file in the back through SSH when you save/load.
11:34:44
solene
I'm displaying text in a terminal and I would like to continue scrolling using #\Space
11:38:32
myrkraverk
When I do (coerce 'simple-string foo) ; where foo is (vector character 40) why do I get: SIMPLE-BASE-STRING can't be converted to type (VECTOR CHARACTER 40) ?
11:40:01
jackdaniel
also, simple-base-string has base-char elements, while there is no guarantee, that character is a base-char
11:40:31
myrkraverk
The function I'm trying to feed this accepts simple-string and simple-base-string.
11:45:11
Younder
you might wanna look at: https://github.com/sbcl/sbcl/blob/master/src/code/reader.lisp
11:47:27
myrkraverk
Such as custom looping through the vector to create a simple-string, or something.
11:52:21
pjb
solene: if you insist on SPC, have a look at implementation specific features such as #+clisp ext:with-keyboard, or at cl-charms (ncurses).
11:52:32
solene
pjb, I would like to be able to use both, I use get-char now and it works well with RET (it's also possible to type others characters in my software)
11:52:55
solene
I think I'm going with a little of C code, I already have an external C library so most of the work is already there
11:54:04
pjb
You may also use termios, with cffi, but I'd be weary of changing the characteristics of the file descriptor under CL streams.
12:24:27
jackdaniel
pjb: cffi = calling foreign code, that's all. You don't have to touch C to use functions using this calling convention
13:04:48
pjb
jackdaniel: cffi has all the disadvantage of the C code compiled with the C compilers requiring cffi.
13:51:59
logicmoo
macro-function lambda lists are always (form env) .. but not (&whole form env) .. right?
13:54:52
pjb
It then uses destructuring-bind to split it into the macro lambda list (minus &env which is processed by defmacro and passed as the env argument).
13:56:45
logicmoo
this leads me to another question (barely related) nut since you mentioned the destructing-bind was wondering if documentation strings would be left over inside the stored form
13:58:27
pjb
destructuring-bind doesn't take a docstring, but it take declarations. Since declarations may occur after the docstring, it would break if it was left.
13:59:46
pjb
Notice that it all relies on defmacro, which is what is specified. Your defmacro could very well generate the macro-function differently, not using destructuring-bind.
14:00:26
pjb
But if you assume it, then this gives constraints on defmacro, such as the handling of &env, of the docstring, and of any declaration concerning the &env parameter.
14:02:17
logicmoo
i neglected to also synthsize the macro-function though so making sure its proper as one might expect to (macro-function 'symbol)
14:02:41
pjb
(defmacro foo (abc &env *env*) (declare (integer abc) (dynamic-extend *env*) (special *env*)) (foo* abc (g env)))
15:07:42
drmeister
Hey lispers - Xach told me a few weeks ago about a mechanism in quicklisp to bundle systems for deployment. I'm trying to jog my memory - does anyone know about a quicklisp facility for bundling systems?
15:13:45
drmeister
Ok - that's ok - my end goal is to construct a monolithic fasl that contains code from several quicklisp systems, several quicklisp systems that are in my local-projects and several asdf systems that are provided by my source code.
15:15:14
drmeister
Along the way I need a list of source files that will serve as dependencies for the build system that will build this monolithic fasl.
15:17:26
drmeister
Currently I use (ql:quickload "main-system-with-many-dependencies") to find all of the asdf .asd files in quicklisp/local-projects and quicklisp/dists/quicklisp/software so that I can grovel the "main-system-with-many-dependencies" to build this list of common lisp files that will be the dependencies of the monolithic fasl.
15:19:46
drmeister
Is there a way to get quicklisp to find and load all of the .asd files but not compile everything?
15:24:22
drmeister
Sorry if this sounds a bit confused - I'm a bit off the map here - trying to figure out how to properly merge building a monolithic fasl file with our 'waf' build system (written in Python) and get waf to know the dependencies of the monolithic fasl file.
15:24:28
dmiles
is it acceptable practice to store important parts of the implementation things in the symbol-plist or should it be kept clear for users?
15:28:38
dmiles
implementation package makes sense .. i was thinking about though as i am loading a file.. for things like warnings
15:36:23
dmiles
it transplies the bodys to prolog.. then uses the internal compiler of prolog to make tramploines
15:38:32
dmiles
but i also expect macroredefinations and want ot keep there sources arround so i can recmpile as needed
15:40:41
dmiles
for exmaple my symbol-function accessor lets them supply an env so they can peer into the flets
15:41:29
thebigj
Friends, I am trying to understand https://dpaste.de/ZRvU/raw this sample common lisp code given as the example in Aspected Oriented Programming ECOOP'97
15:41:54
thebigj
From https://en.wikipedia.org/wiki/Common_Lisp#Syntax I can understand first line is defining a function named or!
15:42:29
beach
thebigj: How come you need to understand Common Lisp code if you hve no experience with it?
15:43:24
thebigj
beach: I have experience with programming. If someone can explain in words I will be able to catch them and understand what the code does.
15:45:01
beach
If the image A has a non-nil pixel in it, then that pixel is copied into the image RESULT, otherwise the pixel in image B is copied.
15:45:45
beach
The code is also badly indented, and the naming is bad. We don't use the SET- and GET- prefixes much.
15:46:02
dmiles
btw i finnaly letting the compiler write the functions for me .. (instead of by hand).. here is one it write: https://github.com/TeamSPoon/wam_common_lisp/blob/master/prolog/wam_cl/places.pl#L20-L52
15:48:23
beach
thebigj: I still don't understand why you need to understand Common Lisp code when you have no experience with it. Are you trying to learn Common Lisp? If so, it is probably better to read a book.
15:51:56
_death
OR is a weird operator to use in that context, maybe it should be LOGIOR.. and then, you'd want to generalize it so that it'll be (combine image1 image2 #'logior)
15:52:52
_death
and then you'd likely want to be able to pass a result image rather than creating a new one
15:53:18
Bike
Right. Well, the code is ORing two images together in an explicit nested loop like beach said. It's not great code as everybody said, but that's the gist
15:59:15
dmiles
beach: i dont suggest trying it now but here is what was working a few days ago: https://github.com/TeamSPoon/wam_common_lisp/blob/master/README.md#howtoquickstart
16:30:42
beach
dmiles: I do not use Prolog, so I'll be interested in your implementation only if it has some advantages over what I currently use. Sorry about that.
16:32:50
beach
dmiles: Interested in using it, that is. I might be interested in implementation strategies.
16:35:40
dmiles
i used a prolog atom (it is a special interned object that acts like aprimary key in the database) .. i record its superclasses and that is it. i lazily create prolog fields in the 'asserta database' as they are either first read or set
16:38:40
dmiles
if someone adds a cons to a field.. i have to create an area that is tracked and modifiable
16:38:42
beach
By "standard instance" I meant an instance of a standard class, and not necessarily a class.
16:39:26
dmiles
i meant an instnace .. except i should have not siad superclass.. i should have said one of more classes it is an instance of
16:40:47
beach
But, again, why does it matter what you store in a slot? Why is storing a CONS different from storing, say, a symbol?
16:43:45
beach
I am sorry, this is not working. For every question I ask, your answer introduces at least one new term I don't understand.
16:44:00
dmiles
(let ((x (cons 1 2))) (setf (slot-value ....) x)) that slot gets created on first use .. in live memory