[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: lists in enclosed expression
On 05/20/2013 07:02 PM, John Cowan wrote:
Another issue is the interaction with format specifiers.
I personally detest these: I much prefer Alex Shinn's fmt library
<http://synthcode.com/scheme/fmt> and hope it becomes the formatting
solution for R7RS-large. Much cleaner, more Schemey, and easier to
A fmt-style facility might also integrate pretty well with
where the currently constructed string is the output destination.
Studying the fmt document, some possible variants suggest themselves:
* Instead of a format closure being a one-argument function taking
a format-state, it could be a zero-argument function that uses
a parameter for the current state, and returns a string. This could
be simpler and more flexible. For example: Initially there could
be a "null" format state, so the format just evaluates to a string.
Such zero-argument functions may also be easier to understand
* Instead of zero-argument functions, each format is a promise,
evaluated when needed.
* Maybe generally use parameters more. Maybe use macros more.
E.g. fmt is a syntatic sugar for a parameterize, and the
<format> are just simple string expressions evaluated in that context,
* Possibly use keyword arguments - if the language supports them.
Some of the format functions take a long list of parameters,
and using kewords might help.
* If fmt were a macro (instead of a function) if could introduce
into the body scope short (single-letter or double-letter)
abbreviations for format functions. For example credit, only
introduce these abbreviations in the "function position", while
evaluating arguments in the normal scope.
Anyway this is off-topic. Just suggesting that while fmt is
an elegant idea, variations of the idea might worth considering,
when the time comes.