mirror of
https://github.com/ChaiScript/ChaiScript.git
synced 2026-02-09 03:06:50 +08:00
Added take_while and drop_while
This commit is contained in:
parent
f35c2908d7
commit
34983dbed2
@ -58,6 +58,15 @@ def take(container, num) : call_exists(range, container) { \n\
|
|||||||
} \n\
|
} \n\
|
||||||
retval \n\
|
retval \n\
|
||||||
} \n\
|
} \n\
|
||||||
|
def take_while(container, f) : call_exists(range, container) { \n\
|
||||||
|
var r = range(container); \n\
|
||||||
|
var retval = Vector(); \n\
|
||||||
|
while ((!r.empty()) && f(r.front())) { \n\
|
||||||
|
retval.push_back(r.front()); \n\
|
||||||
|
r.pop_front(); \n\
|
||||||
|
} \n\
|
||||||
|
retval \n\
|
||||||
|
} \n\
|
||||||
def drop(container, num) : call_exists(range, container) { \n\
|
def drop(container, num) : call_exists(range, container) { \n\
|
||||||
var r = range(container); \n\
|
var r = range(container); \n\
|
||||||
var i = num; \n\
|
var i = num; \n\
|
||||||
@ -72,6 +81,18 @@ def drop(container, num) : call_exists(range, container) { \n\
|
|||||||
} \n\
|
} \n\
|
||||||
retval \n\
|
retval \n\
|
||||||
} \n\
|
} \n\
|
||||||
|
def drop_while(container, f) : call_exists(range, container) { \n\
|
||||||
|
var r = range(container); \n\
|
||||||
|
var retval = Vector(); \n\
|
||||||
|
while ((!r.empty())&& f(r.front())) { \n\
|
||||||
|
r.pop_front(); \n\
|
||||||
|
} \n\
|
||||||
|
while (!r.empty()) { \n\
|
||||||
|
retval.push_back(r.front()); \n\
|
||||||
|
r.pop_front(); \n\
|
||||||
|
} \n\
|
||||||
|
retval \n\
|
||||||
|
} \n\
|
||||||
def reduce(container, func) : container.size() >= 2 && call_exists(range, container) { \n\
|
def reduce(container, func) : container.size() >= 2 && call_exists(range, container) { \n\
|
||||||
var r = range(container); \n\
|
var r = range(container); \n\
|
||||||
var retval = r.front(); \n\
|
var retval = r.front(); \n\
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user