mirror of
https://github.com/ChaiScript/ChaiScript.git
synced 2025-12-08 01:36:54 +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\
|
||||
retval \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\
|
||||
var r = range(container); \n\
|
||||
var i = num; \n\
|
||||
@ -72,6 +81,18 @@ def drop(container, num) : call_exists(range, container) { \n\
|
||||
} \n\
|
||||
retval \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\
|
||||
var r = range(container); \n\
|
||||
var retval = r.front(); \n\
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user