summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2020-06-03 22:32:34 -0700
committerKaz Kylheku <kaz@kylheku.com>2020-06-03 22:32:34 -0700
commitfff34360b061c93926826945d6c570da3c2fbcca (patch)
tree83c7e7b503eb18344f2a1c961f4405d1ba527f1b /eval.c
parent91c85dc6a85bef1c62743bd278ebeb8914bf8b4b (diff)
downloadtxr-fff34360b061c93926826945d6c570da3c2fbcca.tar.gz
txr-fff34360b061c93926826945d6c570da3c2fbcca.tar.bz2
txr-fff34360b061c93926826945d6c570da3c2fbcca.zip
seq_iter: integers and ranges become iterable.
I think with the iter-begin API, we have the the "Maxwell's Equations of Iteration". This not only works well for conses, but it extends to numbers and ranges. * lib.h (seq_iter_t): New union member ul, containing a new member lim. existing len member moved into ul union. * lib.c (seq_iter_get_vec, seq_iter_peek_vec): Adjust access of len, now wrapped in union. (seq_iter_get_range_cnum, seq_iter_peek_range_cnum, seq_iter_get_range_chr, seq_iter_peek_range_chr, seq_iter_get_range_bignum, seq_iter_peek_range_bignum, seq_iter_get_chr, seq_iter_peek_chr, seq_iter_get_num, seq_iter_peek_num): New static functions. (seq_iter_init_with_info): Support RNG object, further classifying the iteration based on the type of the from element. Support numbers and characters as iterable. (iter_begin, iter_more, iter_item, iter_step, iter_reset): Support numbers directly as unencapsulated iterators.
Diffstat (limited to 'eval.c')
0 files changed, 0 insertions, 0 deletions