Hi Joe, > Are there any tips on how to port the json example to ersatz since it > does not support pipe? I experimented with parsing out the string into > a new string and calling str on it but didn't get very far yet. I'd > like something that can parse a string.
The function 'str' is the brother of 'read' in this context. It accepts an analog argument syntax: : (str "{ \"foo\": 1, \"bar\": [10, \"apples\"] }" "_") -> ("{" "foo" ":" 1 "," "bar" ":" "[" 10 "," "apples" "]" "}") You could modify 'readJson' so that it operates on the resulting list instead of the current input channel. On the other hand, is this really necessary? I see JSON primarily as an I/O format. The string argument was just a requirement of the RosettaCode task. I would expect that typical application would rather call (readJson) in an 'in' body (reading from a file or socket). Reading a string first, and converting it immediately, is just overhead. Cheers, - Alex -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe