[rust-dev] Iterators, lists, vectors

Niko Matsakis niko at alum.mit.edu
Thu Jan 12 10:18:17 PST 2012


On 1/12/12 9:47 AM, Graydon Hoare wrote:
> More generally though, I think block-centric is best, and perhaps 
> provide a standard vec method that appends-to-a-vec everything fed to it. 

+1.  I was beginning to work on a generic iter module that provided 
meta-programming features for blocks.  One of them would be to_list:

     type iterfn<T> = block(block(t: T));
     fn to_list<T>(iter: iterfn<T>) -> [T] {
         let result = [];
         iter {|i| result += [i]; }
         ret result;
     }

I believe you could then use this like:

     let keys = to_list(bind hash.keys(_));

or with an appropriate interface/impl pair:

     let keys = bind hash.keys(_).to_list();

or even:

     let keys = hash.keys.to_list();

if we implemented the syntax that "hash.keys" where "keys" is a method.



Niko


More information about the Rust-dev mailing list