freenode/#lisp - IRC Chatlog
Search
11:07:25
kevingal
beach: are you reading Land of Lisp out of some masochistic pleasure, or do you keep running into it in the wild?
11:08:21
beach
I am reading it because it is part of my job to keep me informed about the literature, so that I can then give advice to potential students of Common Lisp.
11:10:29
kevingal
Fair enough! I've always thought that it makes sense to read books you don't like so that you can appreciate the ones that are more to your taste.
11:11:20
beach
luni: Right, my employer would not fire me if I omitted this book from my reading list.
11:12:14
kevingal
Re: Practical Common Lisp, I wouldn't recommend it as a learning resource. It describes features in excruciating detail and doesn't have exercises. Maybe it doesn't suit my style of learning.
11:13:07
kevingal
I like using it as a reference. Or when I vaguely understand a feature and want a full review.
11:13:45
beach
flip214: You are definitely right. Hence my explanation for my reason for reading it.
11:14:47
flip214
well, curiosity is _always_ a valid reason, so I didn't think you'd need to explain anything
11:15:27
beach
edgar-rft: Sure. I meant, whenever I read text books in order to learn something, I never do the exercises. It saves a lot of time. :)
11:15:37
jackdaniel
books are overrated, the true lisper explores their innate deposit of wisdom and complain when the programming language does not match their intuition! :)
11:16:33
jackdaniel
(or asks on #lisp how to solve this particular topic being the beginner material)
11:16:39
edgar-rft
I also don't do the exercises, for exactly the same reasons, what is probably the reason why I never learn anything at all
11:17:39
ldbeth
unless it is sold to students, a good book should always includes answers to exersices
11:19:47
jackdaniel
in the amop book, excercises are marked as easy, demanding, hard and open problems afair
11:21:58
kevingal
I can't be sure that I've learned anything unless there's a way to test my knowledge. I'm actually doing exercises from a textbook as we speak, haha.
11:24:24
kevingal
Then again, maybe the fact that I do the exercises is the reason that I don't finish many books.
11:24:29
jackdaniel
you may find (for free) two chapters of this book as a reference of said protocol here http://metamodular.com/CLOS-MOP/
11:25:19
joga
hey... I just realized I borrowed amop to friend years ago and it's still there, thanks for mentioning it
11:26:26
jackdaniel
is anyone aware of a library that offers a security model for common lisp? (i.e for various users)
11:31:01
jackdaniel
I'm not interested in LM, I'm interested in common lisp library (or, eventually, specification for such security model)
11:33:57
ldbeth
Sounds like you need something a object-oriented access control thing, guess I haven't totally forget it then. http://www.object-oriented-security.org
11:37:38
jackdaniel
thanks, I'm loosely aware what is the capability based security model; what I don't know is whether someone attempted to use it in common lisp
11:38:38
jackdaniel
the site you have mentioned mentions passing "messages" between objects, in Common Lisp enforcing the capability would be probably baked into the generic function
14:25:45
mfiano
Gripe of the day: It's annoying so many CL queue libraries are named with stack semantics (push/pop)
14:41:07
mfiano
Even lparallel uses push/pop. phoe is one of the only people that I can respect with enqueue/dequeue, though I think I suggested that while he was developing it :)
14:51:29
mfiano
Speaking of lparallel, there are quite a few issues, and no developer activity since 2016. Should we sharp that thing?
14:51:49
phoe
push/pop, enqueue/dequeue, insert/remove, add/delete, stuff/pull, suggest/enquire... synonyms suck
14:54:25
splittist
ACTION wonders if the fact his function is 120 lines long is affecting its debuggability...
14:55:09
_death
it's true that push/pop are better associated with push-down lists (stacks).. but it's not exclusive, you can push/pop on either end.. for example C++'s deque (double-ended queue) has (push|pop)-(front|back)
15:05:19
splittist
phoe: yes. But not worth it just yet. It's trying to match identical subtrees using queues and hashtables and all manner of state. The real issue is that I don't quite understand it, yet (:
15:40:53
aggin
how would I use FORMAT to print out the index of the current element I'm iterating through in ~{
15:48:07
aggin
btw I was wondering how the ~/ directive worked in FORMAT, I couldn't find any example of it
15:53:11
_death
kevingal: not too long ago I took an hour to hack some define-equality-test operator, that you can use to define a case-sensitive euqalp https://gist.github.com/death/6a441602bd6acebda067dd900e56e256
15:55:16
kevingal_
I'm guessing the equalp thing is something to do with symbols being case-insensitive.
15:56:57
_death
kevingal: this is more about the reader's behavior, as defined by the readtable's case
15:57:45
specbot
Examples of Effect of Readtable Case on the Lisp Reader: http://www.lispworks.com/reference/HyperSpec/Body/23_aba.htm
16:02:01
_death
the equality operators defined for you by CL are somewhat arbitrary.. the clhs also mentions this
16:08:15
aggin
is there a way to collect in LOOP if a predicate is true or do I have to do it outside of it with REMOVE-IF
16:09:45
kevingal_
Case-insensitivity somehow seems more arbitrary than case-sensitivity :D I guess I can't complain, since the language also allows you to fix it with a whiz-bang macro.
16:13:55
_death
kevingal: when I started learning Lisp I worried about it, but over the years I came to prefer :upcase.. when I need to interoperate with some case-sensitive system doing the case translation myself or using strings or escaping seems to work well, it seems to discourages camelCase etc. in Lisp code, and in the repl when I have some char capitalized by mistake, I need not worry ;)
16:15:36
_death
it's also useful on irc discussions, where you can write FOO to hint that you're talking about the symbol, instead of, say, elisp convention of using `foo'
16:18:25
_death
and sometimes for quick experiments I just write stuff in uppercase for the nostalgia value ;)
16:25:24
kevingal_
death: makes sense! My surprise is more at the default behaviour of equalp. Not an issue once you're aware of it. By the way, what's SCREAMER?
16:26:27
_death
kevingal: it's an oldie but goodie library for nondeterministic and constraint programming in Lisp
16:31:02
Lycurgus
right that was what I was looking for, trynna connect the dots between old thing I'd vaguely heard of and a lisp program that shouts
16:46:28
Nilby
That it does something different with extended-char, which also means I want fancy extended-char, with attributes and things.
18:49:00
pfdietz
equalp is not just case insensitive on strings, but also on characters. Also, it doesn't care about array-element-type. (equalp "a" #(#\A)) ==> true
18:56:38
gendl
Hi, trying to start Slime with sbcl 2.1.2 (as installed by brew on an Intel Mac), set slime-lisp-implementation to ("sbcl") as well as full path to exe, as well as tried with :env ("SBCL_HOME=....") but...
18:58:04
gendl
wait... nevermind... just noticed I'm using a quite outdated Slime... trying with newest Quicklisp version..