From 83ea5aaf4537362848ff8a0d713cf2bac734b516 Mon Sep 17 00:00:00 2001 From: Kyle Marek-Spartz Date: Fri, 14 Feb 2014 23:06:29 -0600 Subject: [PATCH] Add List.map method and test --- builtin/core.wren | 8 ++++++++ src/wren_core.c | 8 ++++++++ test/list/map.wren | 5 +++++ 3 files changed, 21 insertions(+) create mode 100644 test/list/map.wren diff --git a/builtin/core.wren b/builtin/core.wren index 1fd024de..afb3d182 100644 --- a/builtin/core.wren +++ b/builtin/core.wren @@ -16,4 +16,12 @@ class List { } return result } + + map (f) { + var result = [] + for (element in this) { + result.add(f.call(element)) + } + return result + } } diff --git a/src/wren_core.c b/src/wren_core.c index 6db28350..4e0356db 100644 --- a/src/wren_core.c +++ b/src/wren_core.c @@ -59,6 +59,14 @@ static const char* libSource = " }\n" " return result\n" " }\n" +" \n" +" map (f) {\n" +" var result = []\n" +" for (element in this) {\n" +" result.add(f.call(element))\n" +" }\n" +" return result\n" +" }\n" "}\n"; // Validates that the given argument in [args] is a Num. Returns true if it is. diff --git a/test/list/map.wren b/test/list/map.wren new file mode 100644 index 00000000..7d662082 --- /dev/null +++ b/test/list/map.wren @@ -0,0 +1,5 @@ +var a = [1,2,3] +var inc = fn (x) { return x + 1 } +var b = a.map(inc) + +IO.write(b) // expect: [2, 3, 4]