|
feedback
soo
(28 Mar 2004 11:58 UTC)
|
|
Re: feedback
Shiro Kawai
(28 Mar 2004 13:01 UTC)
|
|
Re: feedback
soo
(08 Apr 2004 16:11 UTC)
|
|
Re: feedback
Paul Schlie
(28 Mar 2004 18:04 UTC)
|
|
Re: feedback soo (30 Mar 2004 10:28 UTC)
|
|
Re: feedback
Paul Schlie
(30 Mar 2004 14:32 UTC)
|
|
Re: feedback
Paul Schlie
(30 Mar 2004 14:38 UTC)
|
|
Re: feedback
Paul Schlie
(30 Mar 2004 14:59 UTC)
|
|
Re: feedback
Paul Schlie
(30 Mar 2004 15:24 UTC)
|
|
Re: feedback
Paul Schlie
(30 Mar 2004 19:16 UTC)
|
|
Re: feedback
soo
(31 Mar 2004 13:46 UTC)
|
|
Re: feedback
Paul Schlie
(31 Mar 2004 14:58 UTC)
|
* From: Paul Schlie <xxxxxx@comcast.net>
* Date: Sun, 28 Mar 2004 13:03:46 -0500
* Subj: Re: feedback
| Hi Soo,
| If you have the chance, it may be helpful to read through ALL of the
| discussions related to the earlier SRFI-48 "Re: Format strings are wrong"
| postings, as they may be helpful. (as previously noted, it may still be a
| good idea to first define your broader objectives more formally to help
| delineate your goals and philosophy in order to help focus the discussions
| productively; please do not interpret these comments as being antagonistic,
| as I honestly believe we'd like both like to see the same/similar thing
| enabled).
Thank you for your advice.
| Few observations:
| - personally, believe that some lowest (simplest) level of object->string
| formatting should be defined to enable the basic strings to be composed from
| lists of arbitrary scheme objects, which default to utilizing their most
| likely string equivalent representations, likely those expected by (read).
If we use FMT as (what is called) a formatter, I think it is natural.
In SRFI-48 mailing list, Marc Feeley said:
...
To make printing easier, a general purpose function called "print"
could be added with this definition:
(define (print . lst) (for-each display lst))
allowing
(print "list: " (field '(one "two" 3)))
...
Likewise, we can make a procedure:
(define (cat . objects)
(get-output-string
(let ((string-port (open-output-string)))
(for-each (lambda (object)
(display object string-port))
objects)
string-port)))
Examples:
(cat 12 " " #\a " str " '(3 #\s "string"))
(fmt 12 " " (fmt #\a) " str " (fmt '(3 #\s "string")))
=> "12 a str (3 s string)"
(define a '(10 3 +))
(cat a (fmt 12 10 3 '+) " " #\a " str " (fmt '(3 #\s "string") write))
(cat a (apply fmt 12 a) " " #\a " str " (fmt '(3 #\s "string") write))
(fmt a (fmt 12 10 3 '+) " " (fmt #\a) " str " (fmt '(3 #\s "string") write))
=> "(10 3 +) #e+12.000 a str (3 #\\s \"string\")"
| - as observed in the earlier srfi-48 discussions, it may even be better
| (both more general, and efficient) to define that resulting format functions
| yield string-ports, rather than strings; which could then even be made more
| general if formatting functions themselves were able to accept string-ports,
| such that more complex hierarchically defined formats may be defined as
| desired.
FMT manipulates not string ports but strings.
If we have a procedure like `open-output-string?', we can make FMT to append
the strings in the string ports to the resulting string like <string>
parameter.
Additionally, even though FMT is not fully extensible, If <output-port>
parameter is added to FMT, it can print the resulting string like FORMAT, and
If <input-port> parameter is added, `file->string' function can be added, and
If <separator> parameter is added like '(#\, 3), comma separator function can
be added.
| - lastly, although personally I too would like format specifications to be
| as succinct as possible, I suspect that all format specifications containing
| more than a single specifier should be tagged with at least a single letter
| semi-descriptive symbol to both give a hint as to what the specified
| controls, and to enable them to be only defined as required in arbitrary
| ordered lists as convenient to the author, and/or to enable their more
| flexible construction.
I'll consider it, if conflicts occur among the format specifications.
Anyway, I think it leaves some room for consideration.
| With a little luck, the above is hopefully also be consistent with your
| goals for this srfi as well?
| -paul-
Thanks.
--
INITERM