Fix list_remove() for null index list.

This commit is contained in:
Garth Minette
2020-07-29 22:39:17 -07:00
parent 9ffd959250
commit 6064dcbed0
3 changed files with 23 additions and 18 deletions

View File

@@ -480,13 +480,18 @@ function list_insert(list, indices, values, _i=0) =
// list_insert([3,6,9,12],[1,3]); // Returns: [3,9]
function list_remove(list, indices) =
assert(is_list(list)||is_string(list), "Invalid list/string." )
is_finite(indices)
? [ for(i=[0:1:min(indices, len(list)-1)-1]) list[i],
for(i=[min(indices, len(list)-1)+1:1:len(list)-1]) list[i] ]
is_finite(indices) ?
[
for (i=[0:1:min(indices, len(list)-1)-1]) list[i],
for (i=[min(indices, len(list)-1)+1:1:len(list)-1]) list[i]
]
: indices==[] ? list
: assert( is_vector(indices), "Invalid list `indices`." )
len(indices)==0 ? list :
[ for(i=[0:len(list)-1])
if ( []==search(i,indices,1) ) list[i] ];
[
for(i=[0:len(list)-1])
if ( []==search(i,indices,1) )
list[i]
];