diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | lib.c | 4 |
2 files changed, 9 insertions, 0 deletions
@@ -1,5 +1,10 @@ 2014-07-29 Kaz Kylheku <kaz@kylheku.com> + * lib.c (reduce_left, reduce_right): Nullify incoming sequence + argument so empty vectors and strings can be processed. + +2014-07-29 Kaz Kylheku <kaz@kylheku.com> + * eval.c (giterate_func, giterate): Adjusting semantics of giterate to include seed item in the sequence. The while test is applied to each item before it is passed through the function. Also, @@ -3983,6 +3983,8 @@ val reduce_left(val fun, val list, val init, val key) if (null_or_missing_p(key)) key = identity_f; + list = nullify(list); + if (missingp(init)) { if (list) init = pop(&list); @@ -4001,6 +4003,8 @@ val reduce_right(val fun, val list, val init, val key) if (null_or_missing_p(key)) key = identity_f; + list = nullify(list); + if (list) { if (missingp(init)) { if (!rest(list)) |