On Sat, Nov 19, 2022 at 12:51 AM Marc Nieper-Wißkirchen < marc.nie...@gmail.com> wrote:
> > Chez Scheme's "with" is only used in a deprecated macro facility > ("extend-syntax"). I think, at least for the purpose of Chez, it is > safe to reuse the identifier. > > The identifier "with" is undoubtedly quite general, but so are "let" > or "receive". I would be glad if "parameterize" had a shorter or less > complicated name. > I see. Actually, if 'with' is used for dynamic binding (current srfi-226's parameterize), it is a reasonable name compared with let. In srfi-226, however, I got an impression that 'parameterize' is given to the true dynamic bindings, while 'with' is a kind of pseudo mechanism, mostly to accommodate the existing code that uses parameter-like objects in place of parameters. Yet, it has a shorter name and encourages users to use it over 'parameterize'. I thought it'd be ok before I noticed the subtle difference regarding shift/reset. I'm for providing a dynamic-wind based mechanism for the backward compatibility of legacy 'parameterize', but I'm afraid that naming it 'with' gives an impression that it is a more general, higher-level construct. (It is more general in a sense that it accepts parameter-like objets, but the semantics differ.) In other words: I'm going to tell Gauche users that the new 'parameterize' is not compatible with legacy 'parameterize', it will work most of the time but may behave differently in complicated cases; if you need a full compatibility you have to replace 'parameterize' for 'with'. I'm afraid that the users then think "ok, then I'm going to use 'with' for all dynamic bindings without worrying about compatibility, and it has a shorter name so it's even better." It's not desirable situation.