<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -82,6 +82,8 @@ In Nu, nil is represented with the &lt;code&gt;[NSNull null]&lt;/code&gt; object.
 - (int) length;
 /*! Get the number of elements in a list. Synonymous with length. */
 - (int) count;
+/*! Get an array containing the elements of a list. */
+- (NSMutableArray *) array;
 
 - (void) setFile:(int) f line:(int) l;
 - (int) file;</diff>
      <filename>objc/cell.h</filename>
    </modified>
    <modified>
      <diff>@@ -429,6 +429,17 @@ extern char *nu_parsedFilename(int i);
     return count;
 }
 
+- (NSMutableArray *) array
+{
+   NSMutableArray *a = [NSMutableArray array];
+   id cursor = self;
+   while (cursor &amp;&amp; cursor != Nu__null) {
+      [a addObject:[cursor car]];
+      cursor = [cursor cdr];
+   }
+   return a;
+}
+
 - (int) count
 {
     return [self length];</diff>
      <filename>objc/cell.m</filename>
    </modified>
    <modified>
      <diff>@@ -36,6 +36,8 @@ limitations under the License.
 - (int) length;
 /*! count is a synonym for length. */
 - (int) count;
+/*! nil converts to an empty array. */
+- (NSMutableArray *) array;
 @end
 
 /*!</diff>
      <filename>objc/extensions.h</filename>
    </modified>
    <modified>
      <diff>@@ -47,6 +47,11 @@ extern id Nu__null;
     return 0;
 }
 
+- (NSMutableArray *) array 
+{
+   return [NSMutableArray array];
+}
+
 - (id) stringValue
 {
     return @&quot;()&quot;;</diff>
      <filename>objc/extensions.m</filename>
    </modified>
    <modified>
      <diff>@@ -5,25 +5,25 @@
 
 (class TestList is NuTestCase
      (- testPair? is
-       (assert_false (pair? nil))
-       (assert_true (pair? '(1 . 2)))
-       (assert_true (pair? '(1))))
-
+        (assert_false (pair? nil))
+        (assert_true (pair? '(1 . 2)))
+        (assert_true (pair? '(1))))
+     
      (- testNull? is
-       (assert_true (null? nil))
-       (assert_false (null? 1))
-       (assert_false (null? &quot;&quot;))
-       (assert_false (null? 0))
-       (assert_false (null? '(1))))
-  
+        (assert_true (null? nil))
+        (assert_false (null? 1))
+        (assert_false (null? &quot;&quot;))
+        (assert_false (null? 0))
+        (assert_false (null? '(1))))
+     
      (- testList? is
-       (assert_true (list? '()))
-       (assert_true (list? '(1)))
-       (assert_true (list? '(1 (2 3))))
-       (assert_false (list? 1))
-       (assert_false (list? &quot;&quot;))
-       (assert_false (list? &quot;a&quot;)))
-
+        (assert_true (list? '()))
+        (assert_true (list? '(1)))
+        (assert_true (list? '(1 (2 3))))
+        (assert_false (list? 1))
+        (assert_false (list? &quot;&quot;))
+        (assert_false (list? &quot;a&quot;)))
+     
      (- testCompare is
         (assert_equal t (eq '(1 2 3) '(1 2 3)))
         (assert_equal t (eq '(1 (2 3)) '(1 (2 3))))
@@ -38,13 +38,13 @@
         (assert_equal nil (eq '(i) '(j)))
         (assert_equal t (eq 'i 'i))
         (assert_equal nil (eq 'i 'j)))
-
+     
      (- testObjectAtIndex is
         (assert_equal 1 ('(1 2 3) objectAtIndex:0))
         (assert_equal 2 ('(1 2 3) objectAtIndex:1))
         (assert_equal 3 ('(1 2 3) objectAtIndex:2))
         (assert_equal nil ('(1 2 3) objectAtIndex:3)))
-
+     
      (- testBasicOperators is
         (assert_equal 1 (car '(1 2 3)))
         (assert_equal '(2 3) (cdr '(1 2 3)))
@@ -52,7 +52,7 @@
         (assert_equal '(2 3) (rest '(1 2 3)))
         (assert_equal 1 (head '(1 2 3)))
         (assert_equal '(2 3) (tail '(1 2 3))))
-
+     
      (- testIndexing is
         (set mylist '(1 2 3))
         (assert_equal 1 (mylist 0))
@@ -63,7 +63,7 @@
         (assert_equal 1 (mylist -3))
         (assert_equal nil (mylist 3))
         (assert_equal nil (mylist -4)))
-
+     
      (- testLength is
         (set mylist '(1 2 3 4))
         (assert_equal 4 (mylist length))
@@ -71,25 +71,25 @@
         (set mylist nil)
         (assert_equal 0 (mylist length))
         (assert_equal 0 (mylist count)))
-
+     
      (- testAll is
         (assert_equal t (all '()))
         (assert_equal nil (all (list nil)))
         (assert_equal nil (all (list 1 nil)))
         (assert_equal t (all (list 3 2 1)))
         (assert_equal nil (all (list '(3) nil))))
-
+     
      (- testAny is
         (assert_equal nil (any '()))
         (assert_equal nil (any (list nil)))
         (assert_equal 1 (any (list 1 nil)))
         (assert_equal 1 (any (list nil 1)))
         (assert_equal 3 (any (list 3 2 1))))
-
+     
      (- testApply is
         (assert_equal 1 (apply + '(1)))
         (assert_equal 3 (apply + '(1 2))))
-
+     
      (- testSort is
         (assert_equal '() (sort '()))
         (assert_equal '(1) (sort '(1)))
@@ -98,7 +98,7 @@
         (assert_equal '(1 1 2) (sort '(1 2 1)))
         (assert_equal '(1 2 3) (sort '(3 2 1)))
         (assert_equal '(3 2 1) (sort '(1 2 3) (do (a b) (- (a compare:b))))))
-
+     
      (- testMap is
         (assert_equal '() (map + '()))
         (assert_equal '() (map + '() '()))
@@ -107,9 +107,9 @@
         (assert_equal '(3) (map + '(1) '(2)))
         (assert_equal '(9 12) (map + '(1 2) '(3 4) '(5 6)))
         (assert_equal '(9) (map + '(1 2) '(3) '(5 6))))
-
+     
      (- testAccessors is
-        (set x '(((1 2) 3 4) (5 6 7) 8 9)) 
+        (set x '(((1 2) 3 4) (5 6 7) 8 9))
         (assert_equal '(1 2) (x caar))
         (assert_equal '(3 4) (x cadr))
         (assert_equal '(5 6 7) (x cdar))
@@ -122,10 +122,15 @@
         (assert_equal '(6 7) (x cdadr))
         (assert_equal 8 (x cddar))
         (assert_equal '(9) (x cdddr)))
-
+     
      (- testImplicitAccessors is
         (assert_equal '(6 7) ('(1 2 3 4 5 6 7) cdddddr))
         (assert_equal 5 ('(1 2 3 4 5 6 7) cddddar))
         (assert_equal '(7) ('(1 2 3 4 5 6 7) cddddddr))
-        (assert_equal '7 ('(1 2 3 4 5 6 7) cddddddar))))
+        (assert_equal '7 ('(1 2 3 4 5 6 7) cddddddar)))
+     
+     (- testArray is
+        (assert_equal (array 1 2 3) ('(1 2 3) array))
+        (assert_equal (array) (nil array))
+        (assert_equal (array) ('() array))))
 </diff>
      <filename>test/test_list.nu</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>093862f578d4423dd47e356413ed5129a8c089c6</id>
    </parent>
  </parents>
  <author>
    <name>Tim Burks</name>
    <email>tim@neontology.com</email>
  </author>
  <url>http://github.com/timburks/nu/commit/f291b8c291d7f174fbb209c199b44d571fa64eb8</url>
  <id>f291b8c291d7f174fbb209c199b44d571fa64eb8</id>
  <committed-date>2009-10-07T18:46:10-07:00</committed-date>
  <authored-date>2009-10-07T18:46:10-07:00</authored-date>
  <message>added array method to NSNull and NuCell to easily convert lists into arrays.</message>
  <tree>df4700d28821c1d247699e142a86b2f11f2ac5d0</tree>
  <committer>
    <name>Tim Burks</name>
    <email>tim@neontology.com</email>
  </committer>
</commit>
