1function nativeList(elm) {
3 function throwError(f) {
4 throw new Error("Function '" + f + "' expects a non-empty list!");
9 while (xs[0] === "Cons") {
16 function fromArray(arr) {
18 for (var i = arr.length; i--; ) {
19 out = ["Cons", arr[i], out];
24 function head(v) { v[0] === "Nil" ? throwError('head') : return v[1]; }
25 function tail(v) { v[0] === "Nil" ? throwError('tail') : return v[2]; }
28 if (xs[0] === "Nil") { throwError('last'); }
30 while (xs[0] === "Cons") {
37 function map(f) { return function(xs) {
39 while (xs[0] === "Cons") {
43 return fromArray(arr);
47 function foldl(f) { return function(b) { return function(xs) {
49 while (xs[0] === "Cons") {
58 function foldr(f) { return function(b) { return function(xs) {
59 var arr = toArray(xs);
61 for (var i = arr.length; i--; ) {
69 function foldl1(f) { return function(xs) {
70 xs[0] === "Nil" ? throwError('foldl1') : return foldl(f)(xs[1])(xs[2]);
74 function foldr1(f) { return function(xs) {
75 if (xs[0] === "Nil") { throwError('foldr1'); }
76 var arr = toArray(xs);
78 for (var i = arr.length; i--; ) {
85 function scanl(f) { return function(b) { return function(xs) {
86 var arr = toArray(xs);
89 for (var i = 1; i < len; ++i) {
90 arr[i] = f(arr[i])(arr[i-1]);
92 return fromArray(arr);
97 function scanl1(f) { return function(xs) {
98 xs[0] === "Nil" ? throwError('scanl1') : return scanl(f)(xs[1])(xs[2]);
102 function filter(pred) { return function(xs) {
104 while (xs[0] === "Cons") {
105 if (pred(xs[1])) { arr.push(xs[1]); }
108 return fromArray(arr);
112 function length(xs) {
114 while (xs[0] === "Cons") {
121 function reverse(xs) { return fromArray(toArray(xs).reverse()); }
123 function all(pred) { return function(xs) {
124 while (xs[0] === "Cons") {
125 if (!pred(xs[1])) return false;
132 function any(pred) { return function(xs) {
133 while (xs[0] === "Cons") {
134 if (pred(xs[1])) return true;
141 function zipWith(f) { return function(xs) { return function(ys) {
143 while (xs[0] === "Cons" && ys[0] === "Cons") {
144 arr.push(f(xs[1])(ys[1]));
148 return fromArray(arr);
153 function zip(xs) { return function(ys) {
155 while (xs[0] === "Cons" && ys[0] === "Cons") {
156 arr.push(["Tuple2",xs[1],ys[1]]);
160 return fromArray(arr);
165 return fromArray(toArray(xs).sort(function(a,b) { return a - b}));
168 function take(n) { return function(xs) {
170 while (xs[0] === "Cons" && n > 0) {
175 return fromArray(arr);
179 function drop(n) { return function(xs) {
180 while (xs[0] === "Cons" && n > 0) {
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list