[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: lists in enclosed expression

This page is part of the web mail archives of SRFI 108 from before July 7th, 2015. The new archives for SRFI 108 contain all messages, not just those from before July 7th, 2015.



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
extend coherently.

A fmt-style facility might also integrate pretty well with
SRFI-10[789]:

  &{abc&[<format> ...]xyz}

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
for some.

* 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.
--
	--Per Bothner
per@xxxxxxxxxxx   http://per.bothner.com/