| Register | FAQ | Calendar | Search | Today's Posts | Mark Forums Read |
|
#1
| |||
| |||
| Hi, I don't think I see anything in the READ-LINE specification that requires the first return value to be a fresh string. Does anybody else see such a requirement? (Otherwise, are conforming programs supposed to copy any line they want to modify or hold on to?) -- RmK |
|
#2
| |||
| |||
| In article <871w0atbat.fsf@progn.net>, Richard M Kreuter <kreuter@progn.net> wrote: > Hi, > > I don't think I see anything in the READ-LINE specification that > requires the first return value to be a fresh string. Does anybody > else see such a requirement? (Otherwise, are conforming programs > supposed to copy any line they want to modify or hold on to?) > > -- > RmK I also can't see it specified. But I would expect CL:READ-LINE to return a fresh string on each call. I would also expect that once CL:READ-LINE returns a string the user program can use it and change it without affecting other read/write operations. I can't remember seeing code that makes other assumptions. Typical use would be to iterate over the lines of a stream and collect all the read lines in some data structure. I would expect that there is no reuse of strings going on. -- http://lispm.dyndns.org/ |
|
#3
| |||
| |||
| On Aug 27, 2:27 pm, Rainer Joswig <jos...@lisp.de> wrote: > In article <871w0atbat....@progn.net>, > Richard M Kreuter <kreu...@progn.net> wrote: > > > Hi, > > > I don't think I see anything in the READ-LINE specification that > > requires the first return value to be a fresh string. Does anybody > > else see such a requirement? (Otherwise, are conforming programs > > supposed to copy any line they want to modify or hold on to?) > > I also can't see it specified. > > But I would expect CL:READ-LINE to return a fresh string > on each call. I think this has to be considered the default in Lisp. In order for it to be allowable for a function that returns some object to reuse an object it previously returned, the specification would have to say so explicitly. Hmm, I see the CLHS is not particularly consistent: the page for CONS says "creates a fresh cons", and those for MAKE-ARRAY and MAKE-INSTANCE say "creates and returns ..."; but that for LIST simply says "returns a list containing the supplied objects", and similarly the MAKE-STRING page just says "returns...". Still, there's no doubt that for LIST or MAKE-STRING to reuse a previously returned list or string would be completely bizarre. -- Scott |
![]() |
| Thread Tools | |
| Display Modes | |
In an effort to better serve ads to our visitors, cookies are used on objectmix.com. For more information, check out our Privacy Policy.