freenode/#lisp - IRC Chatlog
Search
13:13:42
chrnybo
I've got some plists, want the library yason to encode them as plists, so I've defined an around-method on yason:encode that calls encode-plist when arg is apporpriate, and call-next-method otherwise.
13:23:23
ggole
Write your own generic function that does the plist thing when you want and falls back to yason:encode otherwise?
13:43:19
ggole
Oh right, you won't be able to fall back to yason:encode because it won't call your function on nested parts. It's the open recursion problem again.
13:49:45
loke
chrnybo: doesn't Yason do that? But you should type it as '((:foo . 1) (:bar . #((:zot . 12))))
13:54:52
chrnybo
ggole: I let a flag variable and declared it special, then I check for that flag in my around method. Thus I can leave other users of yason:encode undisturbed.
14:03:59
loke
I thought that it also affects the way it's written. I could be wrong though. It's been a while since I used it.
14:05:40
_death
(com.gigamonkeys.json:json '(:foo 1 :bar #((:zot 12)))) => "{\"foo\":1,\"bar\":[{\"zot\":12}]}"
14:32:57
_death
why do you declare *lists-as-plists* as special? did you not defvar/defparameter it?.. and if not, you should also declare it special in the :around method
14:41:22
chrnybo
_death: Described in a paper by Espen Vestre published at a japanese lisp conference
14:41:54
chrnybo
https://franz.com/services/conferences_seminars/jlugm00/conference/Talk05_Vestre.pdf
14:45:36
chrnybo
Sure, apply for a job in OSS, masquerading as an eager architect-type, then come sit next to us in order to join in.
19:33:58
fiddlerwoaroof
akater: I noticed you were talking about class redefinition issues the other day, CL has UPDATE-INSTANCE-FOR-REDEFINED-CLASS that can sometimes help.
19:34:50
fiddlerwoaroof
I've written methods on this for development purposes only to clean up/fix changes arising from class definition changes
19:36:36
fiddlerwoaroof
There's also UPDATE-INSTANCE-FOR-DIFFERENT-CLASS that handles cases where you CHANGE-CLASS on a class that's in use
19:37:03
fiddlerwoaroof
they're not much used, afaict, mostly because we tend to write programs in lisp rather than treating lisp as a system