[svn] r6041: nemerle/trunk/lib/list.n

malekith svnadmin at nemerle.org
Mon Dec 26 11:51:51 CET 2005


Log:
Use list comprehensions in MapFromArray and Filter.

Author: malekith
Date: Mon Dec 26 11:51:50 2005
New Revision: 6041

Modified:
   nemerle/trunk/lib/list.n

Modified: nemerle/trunk/lib/list.n
==============================================================================
--- nemerle/trunk/lib/list.n	(original)
+++ nemerle/trunk/lib/list.n	Mon Dec 26 11:51:50 2005
@@ -793,15 +793,7 @@
     
     public MapFromArray['a, 'b] (x : array ['a], f : 'a -> 'b) : list ['b] 
     {
-      def len = x.Length;
-      
-      def loop (acc, index) : list ['b] {
-        if (index < len)
-          loop (f (x [index]) :: acc, index + 1)
-        else
-          List.Rev (acc)
-      }
-      loop ([], 0)
+      $[ f (e) | e in x ]
     }
     
     /* -- ITERATORS ON TWO LISTS ------------------------------------------- */
@@ -993,7 +985,7 @@
      */
     public Filter ['a] (l : list ['a], f : 'a -> bool) : list ['a]
     {
-      List.Rev (RevFilter (l, f))
+      $[ x | x in l, f (x) ]
     }
 
     
@@ -1185,6 +1177,7 @@
       MergeSort (cmp, l)
     }
 
+    // what is it for?!
     public Copy['a] (l : list ['a]) : list ['a] 
     {
       def loop (acc : list['a], what : list['a]) {



More information about the svn mailing list