mirror of
https://github.com/wren-lang/wren.git
synced 2026-01-11 22:28:45 +01:00
Merge branch 'feature/list-where' of git://github.com/zeckalpha/wren into zeckalpha-feature/list-where
Conflicts: builtin/core.wren src/wren_core.c
This commit is contained in:
@ -16,7 +16,7 @@ class List {
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
|
||||
map (f) {
|
||||
var result = []
|
||||
for (element in this) {
|
||||
@ -24,4 +24,12 @@ class List {
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
where (f) {
|
||||
var result = []
|
||||
for (element in this) {
|
||||
if (f.call(element)) result.add(element)
|
||||
}
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
@ -67,6 +67,14 @@ static const char* libSource =
|
||||
" }\n"
|
||||
" return result\n"
|
||||
" }\n"
|
||||
" \n"
|
||||
" where (f) {\n"
|
||||
" var result = []\n"
|
||||
" for (element in this) {\n"
|
||||
" if (f.call(element)) result.add(element)\n"
|
||||
" }\n"
|
||||
" return result\n"
|
||||
" }\n"
|
||||
"}\n";
|
||||
|
||||
// Validates that the given argument in [args] is a Num. Returns true if it is.
|
||||
@ -275,9 +283,9 @@ static PrimitiveResult callFunction(WrenVM* vm, Value* args, int numArgs)
|
||||
{
|
||||
fn = AS_FN(args[0]);
|
||||
}
|
||||
|
||||
|
||||
if (numArgs < fn->numParams) RETURN_ERROR("Function expects more arguments.");
|
||||
|
||||
|
||||
return PRIM_CALL;
|
||||
}
|
||||
|
||||
|
||||
8
test/list/where.wren
Normal file
8
test/list/where.wren
Normal file
@ -0,0 +1,8 @@
|
||||
var a = [1, 2, 3]
|
||||
var moreThan1 = fn (x) { return x > 1 }
|
||||
var moreThan10 = fn (x) { return x > 10 }
|
||||
var b = a.where(moreThan1)
|
||||
var c = a.where(moreThan10)
|
||||
|
||||
IO.print(b) // expect: [2, 3]
|
||||
IO.print(c) // expect: []
|
||||
Reference in New Issue
Block a user