libera/#commonlisp - IRC Chatlog
Search
4:29:27
kakuhen
pjb: regarding the macro from yesterday, it seems that restart-case does not place forms on the top level, and the cl spec only guarantees types exist when you defclass on the top level; it seems you can have implementation-specific behavior when you defclass below the top level
7:30:25
pjb
kakuhen: note that restart case in foo could have only been invoked by the compiler, since it wraps only defclass and defmethod.
9:02:20
lotuseater
Hey does anyone know this Automated Mathematician system by Douglas Lenat? (from which Cycorp more or less evolved)
9:10:56
edgar-rft
lotuseater: wasn't that one of the predecessor ideas that later became known under the term "genetic programming" (automatically generating, modifying and testing computer source code)?
9:12:15
lotuseater
and first read about this system indirectly in Gödel Escher Bach by Douglas Hofstadter some time ago. to me personally very interesting as it also touches experimental mathematics
9:14:28
lotuseater
the great mathematicians like Euler, Gauss, etc were all experimental mathematicians in the first part of their work pipeline
9:15:19
lotuseater
so I found an archived repo of AM translated from Lisp to Prolog but the file organization seems messy
9:29:42
hayley
Anyways, AM looks like an interesting project. In the context of CL programs, I considered a program which would just nudge things around to find dumb mistakes that I fail to find because I'm not thinking about them.
9:31:24
hayley
Well, his shtick is that abstraction is a net loss would you flip through lots of codebases, or would you be a new programmer. But as Dijkstra said (paraphrasing) "the aim of abstraction is to make a layer that one can be totally precise about."
9:32:41
hayley
Without such a mechanism, one achieves a vulgar kind of simplicity where they can't do very much, even if the components are blatantly obvious in what they do. It's like less-is-less rather than less-is-more.
9:34:23
hayley
Should I shut up now? I could go on for a long time about how annoying it is that such a bad idea of "simplicity" permeates the minds of a lot of hackers.
10:47:54
jmercouris
better way than format for concatenating a list of strings into a single string?
11:01:24
jmercouris
I'm asking if there is a performance penalty or reason to prefer one or the other
11:09:17
hayley
Well, you know the size of the output string already, so you can allocate exactly the right size and fill it in.
11:10:42
hayley
c.f. fast-io being quite fast. I remember I wrote a faster-io as I knew I could get away with not copying some buffers, so I just stuck those into the list rather than copy them in.
11:11:50
hayley
How much are you concatenating though? Depending on the context you probably shouldn't care too much.
11:33:16
pjb
lotuseater: nothing new about CyC. I dug a little into OpenCyC some years ago, and indeed, everything that's said was apparent. The best thing they could do to unlock the situation would be to replace the pseudo-lisp->java translator by a pure CL implementation, then externalize the database (so it can be put in git). Then things could evolve…
11:35:17
pjb
jmercouris: (com.informatimago.common-lisp.cesarum.sequence:concatenate-sequences '(vector character) '("Foo" "Bar" "Baz")) #| --> "FooBarBaz" |#
11:37:43
pjb
jmercouris: there's also: (com.informatimago.common-lisp.cesarum.string:concatenate-strings '(("FooBar" 0 3) (#\b #\a #\z) (quux 2 4))) #| --> "FoobazUX" |#
11:50:15
etimmons
Xach: I was over optimistic on UIOP release timeline. I don't think it'll make it for this next QL. Maybe the random failures experienced by users will cause at least a few more folks to explicitly depend on UIOP if they use anything from it