Tell me if this works well and I'll commit it: https://github.com/jeapostrophe/exp/blob/master/plist-dict.rkt
One problem could be that it doesn't preserve the order of the original plist dict entries. I could switch it to use an alist and the dict interface, if that IS a problem. Jay On Thu, May 31, 2012 at 3:09 PM, Steve Byan <[email protected]> wrote: > I've finally found the time and motivation to start exploring racket in > earnest. I'm diving right in by trying to edit the preferences in my Mac OS X > Mail.app mail client to set all my mailboxes to sort in descending order. > This involves scanning over the xml in all the Info.plist files scattered > throughout my ~/Library/Mail/V2/Mailboxes directory tree, finding the ones > with the "SortedDescending" property set to "NO", and re-writing them with > "SortedDescending" set to "YES". > > Many thanks to the fine Racket developers; I'm finding the documentation > surprisingly useful for "just diving in". (The last LISP I wrote in earnest > was before Scheme had been invented, back in 6.011 in 1973.) Thanks also to > the developer of the xml/plist library; I didn't expect to have something > already in the library that parses Apple's plist xml DTD. (BTW, avoiding > xpath and xslt was the primary motivator for trying to write this in Racket; > at this point, I only have a limited number of brain cells to spend, and > don't want to waste them on learning that nonsense.) > > However, I would appreciate a pointer. I've got "find-files" working to > produce a list of all my Info.plist files, and the "for" list-comprehension > iterating over "find-files" result, and "call-with-input-file" working with > "read-plist" to suck in the XML and produce a "plist-dict". > > But, I'm at something of a loss to understand what to do with a plist-dict. > Is there a way to convert between a plist-dict and a real dictionary and > vice-versa? I'd like to query the existence of the property key, get its > value, and either mutate it by setting a new value or copy it with a new > value for the key. I see the grammar for plist-dicts in the docs, but my > instinct tells me that there's a better way to deal with them than by writing > functions based on the grammar to implement the dictionary-like behavior that > I seek. > > Best regards, > -Steve > > -- > Steve Byan <[email protected]> > Littleton, MA 01460 > > > > -- > Steve Byan <[email protected]> > Littleton, MA 01460 > > > > > ____________________ > Racket Users list: > http://lists.racket-lang.org/users -- Jay McCarthy <[email protected]> Assistant Professor / Brigham Young University http://faculty.cs.byu.edu/~jay "The glory of God is Intelligence" - D&C 93 ____________________ Racket Users list: http://lists.racket-lang.org/users

