freenode/#lisp - IRC Chatlog
Search
12:59:04
jackdaniel
the end of paste.lisp.org, it's not pastebin. there is plenty of other paste services
13:05:41
phoe
Make sure that the symbol you use in the SLOT-VALUE and the symbol used as the slot name are EQ.
13:06:38
phoe
francogrex: https://stackoverflow.com/questions/40742048/is-there-a-way-to-get-the-slots-of-a-class
13:13:16
random-nick
is there a pastebin service which does rainbow parentheses or parentheses highlighting?
13:17:08
jackdaniel
most do. one created by Shinmera has also CL-specific highligting: https://plaster.tymoon.eu/
13:31:43
francogrex
pastebin is the end of an era!!! it's yet another setback for common lisp... really makes me sad a little
13:46:25
pjb
The big problem with the absence of lisppaste, is that the other don't keep the history. With lisppaste, I could refer to pastes 3 or 5 year old!
13:53:51
jackdaniel
there was a discussion on mailing list about possibilities, nobody stepped in to propose that he can maintain it *and* keep it safe from spam
16:23:19
jmercouris
Any idea why my code is not working? https://gist.github.com/0fb1a792795b8ec02e26e0b419e3545c
16:31:06
jmercouris
What happened was I originally mistook NIL as "no matches" for remove-if, rather than the list was now empty
16:35:29
lisp_guest
i guess COND is taking those forms and treating them as code to evaluate, without expanding them?
16:37:16
lisp_guest
i knew you were going to ask that :D. i'm doing a simple rot-13 but it's not relevant. i'm just curious whether it's possible
16:40:58
lisp_guest
hm, what about a version of cond that would first macroexpand the forms in its clauses?
16:41:36
Bike
say you have a macro named foo and a variable named foo, what does (mycond (foo ...) ...) do?
16:42:13
Bike
additionally, the macros would only be valid in this one context, so if they appeared somewhere else by mistake you'd get hard to understand errors.
16:43:18
lisp_guest
Bike: why exactly is that case ambiguous? isn't it always treated as function or a macro call in normal code?
16:44:35
lisp_guest
beach: yeah, i was just thinking about that. essentially what i wanted was for this macro just to expand into a cond clause
16:45:17
beach
It wouldn't be if you macroexpand it yourself into a context where it is not evaluated.
16:48:20
lisp_guest
Bike: ah i see what you mean by ambiguous. i was thinking of MYCOND as something that would allow *only* macros for its clauses, but that it would indeed be limiting. if you allow both macros and "normal" clauses, then it's ambiguous
16:49:47
Bike
would you also have macros expand only once? because they could expand into ((condition ...) ...) which can't be macroexpanded, or into (foo ...) which only maybe means a variable and maybe is another macro
16:50:01
Bike
well, in short, it sounds kind of confusing. and i still don't really understand how this would be used.
16:50:34
lisp_guest
i was just wondering why (1) my code failed and (2) would there by a way around it
16:58:07
jmercouris
What's a way to find the class of a particular object (find--class) does not seem to do what I want
17:01:17
jmercouris
Well, at any rate, that is what I was looking for, if you have a bouncer or check the logs, thanks phoe
17:03:48
beach
jmercouris: I think basket is asking because it would be very unusual to have to do that.
17:05:17
jmercouris
If you have a Buffer, with several Mode object instances: (list Document-Mode-Object Application-Mode-Object)
17:05:33
jmercouris
One may wish to switch-mode to the Application-Mode-Object, but not have a reference to it
17:06:13
jmercouris
and it will look through the modes for an instance of Application-Mode-Class and switch to it
17:07:08
jmercouris
beach: That is not where I am using class-of, I'm only using it in add-or-switch-to-mode
17:07:39
jmercouris
The reason being that I want someone to be able to Create an Instance of a mode and pass it to add-or-switch-to-mode which will then EITHER ADD the mode, or SWITCH TO AN EXISTING MODE OF SAME CLASS
17:08:50
jmercouris
and what this will do is EITHER add document mode and switch to it, OR switch to an existing document-mode associated with the buffer
17:09:24
shka
does not change the fact, that i would add some minimal set of protocol classes for modes
17:15:39
beach
jmercouris: It is too late in the day for me to analyze your code. It shall have to wait.
17:15:59
jmercouris
beach: Ok, it's alright, the implementation will probably change 10 times before tomorrow anyway :P
17:17:44
Bike
so basically, you have a list of things, and you want to have a function that selects a node by class, and you use the actual class rather than anything it's an indirect instance of.
17:19:07
Bike
what if it has more than one mode of the same class? does it not matter what gets picked? or does that not happen?
17:20:27
jmercouris
shka: Make sure to compile it though, the changes aren't available in the release binary
17:20:59
Bike
it's unusual to discriminate objects by their class like that, is all. the only time i've ever seen it is clos internals.
17:34:15
beach
That's part of it, yes. SELF suggests a single dispatch language where you are not allowed to use the same name for a type and a parameter.
17:35:43
jmercouris
I'm afraid of what Lisp is doing to me mentally lol, maybe I won't be able to work with other languages again :D
17:36:25
beach
That's a very real risk. So if you don't want that to happen, you had better quit now, while there is still time.
17:36:29
jmercouris
I was writing python the other day and I started typing (print "something {}".format(some-variable)) which is of course a non-sensical mix of python and lisp
17:39:10
Shinmera
What annoys me most about working with other systems is typically not the syntax but the APIs. In Lisp I've so far had the "luxury" of just building everything myself.
17:39:35
jmercouris
Shinmera: Or even writing a macro on top of an API to use it in the way you wish
17:39:39
Shinmera
With anything else I always spend hours constantly googling documentation and how to do things.
17:39:59
Shinmera
And then get pissed because it turns out the designers didn't really design at all and you have to write some kinda shitty workaround.
17:40:19
jmercouris
consider Numpy and Pandas, completely break everything about python, get two of the most popular packages
17:46:36
jmercouris
beach: How serious are you? do you find yourself unable to work in other languages? Do you not frequently work in C?
17:52:57
shka
jmercouris: after working with lisp for extended period of time with lisp you start to feel like jim carrey of programming
18:46:05
phoe_
It only mentions that its arguments should be sequences. Reading from glossary, "sequence n. 1. an ordered collection of elements 2. a vector or a list."
18:46:40
phoe_
And, "list n. 1. a chain of conses in which the car of each cons is an element of the list, and the cdr of each cons is either the next link in the chain or a terminating atom. See also proper list, dotted list, or circular list. 2. the type that is the union of null and cons."
18:52:08
phoe_
circular lists are of type LIST because they are of type CONS, so they are a sequence, by that definition.
18:53:59
phoe_
I was trying to REPLACE a part of a circular list and I was a little bit bamboozled when it hung on a call to LENGTH.
19:13:23
shka
phoe_: nah, standard functions that are said to work on sequences, work on proper list
19:14:35
phoe_
ACTION finished his solution of this day's advent of code with a custom replace function
19:15:07
shka
obviously, working on circular lists in particular would require large overhead for each function
19:17:48
_death
phoe: here's my ugly one.. in my defense I was still halfway asleep.. https://gist.github.com/death/6d8271d50db60893706b097e5570322b
19:18:17
pjb
_death: list-length doesn't deal with circular lists, only dotted-lists. Use com.informatimago.common-lisp.cesarum.list:list-lengths instead.
19:19:23
pjb
But list-lengths is more useful, it returns the length of the stem and the length of the cycle.
19:19:47
whoman
there are some functions that detect circular, i wasnt sure if length was one of them
19:22:18
whoman
oh yes the book is 'art of symbolic computation' where i just finished circular list
19:22:26
jackdaniel
for arbitrary list circularity detection requires at least n steps, where n+1 cdr starts a circularity
19:30:34
drdo
_death: Right, but if you are using a circular list, you presumably want it to be an infinite list
19:43:32
phoe_
shka: vectors aren't circular, and this task explicitly deals with circular data structures.
19:43:50
aeth
There are many ways to get a "circular" data structure without literal circular lists.
19:45:09
_death
phoe: the access pattern hinted at by the problem suggests lists would not be efficient
19:48:18
aeth
A struct as circular buffer (array, start, end, emptyp) with two additional accessors (after enqueue and dequeue), for arbitrary middle access (but not deletion from the middle) would probably fit a lot of circular needs.