[Prev][Next][Index][Thread]
Re: Initial filling of collections
Seems like a reasonable idea to me. It parallels init-value: and
init-function: for slots, and the elements of a key-collection are really
just repeated slots.
Gabor Greif ggreif@lucent.com on 2001-02-27 07:00 wrote:
> Hi all,
>
> we all use and love the fill: keyword when making collections as in
>
> make(<vector>, size: 42, fill: #"foo");
>
> If this keyword is not provided, the default is #f, which seems inappropriate
> for limited collections over a different element type than
> type-union(#f.singleton, XXX).
>
> In this case you have to come up with an arbitrary init value, specify it in
> \make and than fill in computed values with map-into!.
>
>
> I am wondering how this could be combined into a single pass and whether
> fill-function: can be provided that accepts a key and returns an initial value
> for make? (Of course this is for <sequence>s,
> for <explicit-key-collection>s the signature would be "method() => (key,
> value)")
>
> What I envision is something like this:
>
> make(limited(<vector>, of: <integer>), size: 42, fill-function: identity);
>
> this would be a performance-wise and logically better alternative to the
> compound
>
> map-into!(identity, make(limited(<vector>, of: <integer>), size: 42, fill:
> 0));
>
>
> Would such an extension make sense or even have a chance to make it into a
> future DRM?
> Any thoughts?
>
> Or am I missing something obvious?
>
> Thanks,
>
> Gabor
>
>
Follow-Ups:
References: