/* * Copyright (c) 2003-2008 The University of Wroclaw. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. The name of the University may not be used to endorse or promote * products derived from this software without specific prior * written permission. * * THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN * NO EVENT SHALL THE UNIVERSITY BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ // These classes alse held only for compatibility reasons. They do not and should not // provide any new funcionality. In general you should use BCL classes they derive from // or other Nemerle classes they are alias for. using System.Collections.Generic; namespace Nemerle.Collections { /* module Helpers { //public Map['a, 'b](this collection : IEnumerable['a], f : 'a -> 'b) : IEnumerable['b] //{ //foreach(elem in collection) //yield f(elem); //} public Map['a, 'b](this collection : List['a], f : 'a -> 'b) : List['b] { def result = List (collection.Count); for (mutable i = 0; i < collection.Count; ++i) result.Add(f (collection [i])); result } } */ /// OBSOLETE /// /// Just a little extension of System.Collections.Generic.List /*public class Vector['a] : System.Collections.Generic.List ['a] { public this () { base () } public this (size : int) { base (size) } public this (enu : System.Collections.Generic.IEnumerable ['a]) { base (enu) } public IsEmpty : bool { get { Count == 0 } } public RemoveLast () : void { RemoveAt (Count - 1) } public Map[To] (f : 'a -> To) : Vector [To] { def result = Vector (Count); for (mutable i = 0; i < Count; ++i) result.Add(f (this [i])); result } }*/ /** * Enumerable interface. */ //[System.Obsolete ("Please use standard .NET class System.Collections.Generic.IEnumerable [T]")] //public interface IEnumerable ['a] : System.Collections.Generic.IEnumerable ['a] //{ } /** * Enumerator interface. */ //[System.Obsolete ("Please use standard .NET class System.Collections.Generic.IEnumerator [T]")] //public interface IEnumerator ['a] : System.Collections.Generic.IEnumerator ['a] //{ } /// just an alias for older API compatibility //[System.Obsolete ("Please use class Nemerle.Collections.Map")] //public type SystemMap ['a, 'b] //where 'a : System.IComparable ['a] = Map ['a, 'b]; /// just an alias for older API compatibility //[System.Obsolete ("Please use class Nemerle.Collections.Map")] //public type NemerleMap ['a, 'b] //where 'a : System.IComparable ['a] = Map ['a, 'b]; /** * Dictionary entry. */ //[System.Obsolete ("Please use standard .NET class System.Collections.Generic.KeyValuePair[K,V]")] //public type DictionaryEntry ['a,'b] = System.Collections.Generic.KeyValuePair ['a, 'b]; } namespace Nemerle { //[System.Obsolete ("Please use standard .NET class System.IComparable[T]")] //public interface IComparable ['a] : System.IComparable ['a] { //} }