freenode/#lisp - IRC Chatlog
Search
19:51:09
jasom
okay it's weird that (eq 'π‘π’π£π²π« 'defun) but not (string-equal "DEFUN" (string-upcase "π‘π’π£π²π«"))
19:58:07
pjb
and (string-equal "DEFUN" (string-upcase "π‘π’π£π²π«")) is equivalent to (string-equal "DEFUN" "π‘π’π£π²π«") and to (string-equal "defun" "π‘π’π£π²π«")
20:09:58
Nilby
Maybe I'm blinded by the thrill of using so many new characters. I may live to regret it.
20:11:54
jasom
pjb: on sbcl with default settings and my current locale: (eq 'defun 'π‘π’π£π²π«) ; -> T
20:16:32
jasom
in normalization K -> Kompatibility which normalizes font, positional, circled, width, rotations, squared and fractions
20:17:54
jasom
and it's done after it decides if a token is a number so ΒΌ reads in as the symbol '1/4 not the number 1/4
20:19:32
fiund
is anybody else having (new) trouble with qtools on mac? (qt-libs:ensure-standalone-libs) succeeds, but (ql:quickload 'qtools) fails, unable to load libcommonqt.dylib
21:54:50
lottaquestions
Hi all, has anyone gotten the code from Practical Common Lisp Working on SBCL?
22:01:24
lottaquestions
I modified the code in Chapter29, in playlist.lisp so that the param *silence-mp3* points to an actual mp3 file
22:02:02
lottaquestions
but when loading the source code from asdf, somehow it attempts to run this code and fails to open the said mp3 file
22:09:24
pjb
lottaquestions: you could use termbin.com : #!/bin/bash \n nc termbin.com 9999 | tr -d '\000'
22:12:14
lottaquestions
no problem, its actually the source from the book Practical Common Lisp. Here is my change to playlist.lisp: https://pastebin.com/9rPtGkBB
23:05:05
pjb
lottaquestions: Undefined function id3-p ; I don't find it in the id3v2 system I have β¦
23:07:07
pjb
and there's no com.gigamonkeys.id3v2 system in quicklisp. System "com.gigamonkeys.id3v2" not found.
23:19:18
_death
lottaquestions: it expects the stream to be a binary stream, and the code in PCL's id3-p does pass :element-type '(unsigned-byte 8) so maybe you forgot it in your copy
23:19:58
pjb
lottaquestions: anyways, the problem is in com.gigamonkeys.id3v2:read-id3 which doesn't open the file as a binary file.
4:26:29
uabobbobobo
I'm fooling around with SHOP3 (and automated HTN planner https://shop-planner.github.io). I'm trying to produce a graph (shop3-graph-planner) of a plan as generated from shop3/shop3/examples/rovers/pXX.lisp. I've noticed that (find-plans-stack 'problem1 :plan-tree T :verbose T) produces what seems to be multiple output streams (the plan, plan-tree,
4:37:10
buffergn0me
uabobbobobo: Do you mean bind the *ENHANCED-PLAN-TREE* variable? If you look at the definition of FIND-PLANS-STACK, that is what :plan-tree keyword does
4:43:48
uabobbobobo
buffergn0me after running plan-tree, how/where do I access *enhanced-plan-tree* ?
4:52:02
buffergn0me
uabobbobobo: Common Lisp functions can return multiple values, that is what you are seeing. The second return value is a list of plan trees
4:55:00
aeth
multiple-value-bind, multiple-value-call, multiple-value-list. And for the opposite: values and values-list
4:55:19
aeth
There are a few others that I'm leaving out. Most notably, you can SETF values (on both sides)
5:01:32
uabobbobobo
Very happy to see this! So I'd so something like (setq *dgraph* (multiple-value-bind (x y z) (find-plans-stack 'roverprob :plan-tree T :verbose 3) (list y)))
5:02:34
uabobbobobo
aeth, yes! I was fiddling around with multiple-value-list and multiple-value-call. Thank you, these are both very helpful
5:05:03
aeth
I'm a bit disappointed that LET didn't have a parallel (let (((values x y z) (values 1 2 3))) ...) to SETF's setting of values. m-v-b shouldn't be necessary and when it nests it can get ugly
5:08:01
aeth
in case I was unclear, the LET version doesn't work, but the SETF version does, and I was upset that there wasn't a parallel there like there is for e.g. values-list vs. multiple-value-list
5:21:31
Bike
if you go farther with that you get the idea let should bind places... which someone has written macros for, i remember seeing it on cliki
5:23:52
aeth
Well, when I get back to it. One of the reasons I've procrastinated it is because I'd have to write my own Emacs indentation for it because it is essentially designed for flat binding of all of the binding forms, like flet and labels (iirc, consecutive blocks of labels counts as one labels expansion)
5:24:39
aeth
Mainly because I'm a bit annoyed at those rare functions where I might have like 5-6 layers of binding nesting if I e.g. have a let, a m-v-b, and a flet
5:26:55
Bike
(defmacro nest ((&rest binds) &body body) (if (null binds) `(progn ,@body) `(,@(first binds) (nest ,(rest binds) ,@body)))), i think that's how it goes
5:36:24
buffergn0me
That is, make variable binding/destructuring generic, like "lvalues" are generic in Common Lisp assignment