From: miguel s. <mig...@gm...> - 2005-08-31 21:01:19
|
On 8/31/05, Sergey Babkin <ba...@ve...> wrote: > I've read it once again and I think that there still > are multiple important additions in the proposal: >=20 > 1. lset (or its analog) creating the intermediate > hierarchy if it's not existing Considered and discussed previous to proposing lset (TIP 33). Consensus seemed to be against it, so Kevin removed it from his proposal. If memory serves right. =20 > 2. The mset commant that allows to set a number of > variables from a list of values. Even though it's > easy to create, it's a huge convenience for > returning multiple values from a function, as described > in TIP. Have you read the spec for [lassign], TIP 57? 'mset $vars $vals' is pretty much the same as 'lassign $vals {expand}$vars' > .... > > I also feel that "trivially created by composition of > the existing commands" is not much a justification > since it forces to reimplement the same things > over and over again. I feel that a language should > provide the programmers not with a teoretically > minimalistic set of commands but with a convenient set > of commands, that makes implementing the typical tasks > not just theoretically possible but also easy. > > I can create a new TIP with the already-implemented > items removed from it, or edit this one for > such a removal. We try to keep the Tcl core small. New builtin commands appear only rarely, and they have to pass a high hurdle: useful to a significant(?) fraction of applications, difficult or impossible to provide by extensions, coding in Tcl has a severe performance impact. On the other hand, we take pride in making it easy for Tcl to be extended with new commands. In this particular case, the best solution might be to create an extension. Given the new tools in 8.5, it probably should be Tcl-only. Possibly of interest in tcllib, in the ::struct::list package? Maybe some of this functionality is already available there, please do check http://tcllib.sourceforge.net/doc/ Cheers Miguel |