Stepping back for a moment here: why do you want strings as charlists? It seems to me that the only real reason one would want to do that is the lack of general iteration facilities. You may want to look into the "for" macros and the "in-string" sequence generator. -Ian ----- Original Message ----- From: Timothy Farland <[email protected]> To: [email protected] Sent: Sat, 3 Mar 2012 04:13:25 -0500 (EST) Subject: [racket] Strings as lists
Hi racket folk, lisp neophyte here (just finished HTDP), I would like to use Haskell-style strings in my racket, where a string is defined as either '() or (cons character string), and is read from and displayed by values enclosed by double quotes. i.e: "string" is understood as '(#\s #\t #\r #\i #\n #\g) and '(#\s #\t #\r #\i #\n #\g) is displayed as "string". .. so one could do, for example (car "string") => #\s, or (cdr "string") => "tring" etc. I've made altered versions of the basic list processing functions that act differently when given strings or lists, so they achieve this, but at the cost of a lot of runtime checks. For a better approach I suspect one would need to deal with the 'reader,' but looking at the documentation, it seems a bit beyond my current understanding. Has anyone else seen or built a language extension that achieves this, or could anyone point me to some next-step resources that will bring me up to the level where I can understand the reader documentation? Or is my enterprise here misguided? Many thanks -- Tim Farland e:[email protected] ____________________ Racket Users list: http://lists.racket-lang.org/users

