diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2012-04-07 09:25:07 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2012-04-07 09:25:07 -0700 |
commit | ec19948f35d876f5c64814a2905760b2f8763bb4 (patch) | |
tree | 14c5a24be8cec4f2fee10cda36d3f9379dd17851 /txr.vim | |
parent | 10d60eea8cf8c3b60d9df1d2fc7621833a2ee79c (diff) | |
download | txr-ec19948f35d876f5c64814a2905760b2f8763bb4.tar.gz txr-ec19948f35d876f5c64814a2905760b2f8763bb4.tar.bz2 txr-ec19948f35d876f5c64814a2905760b2f8763bb4.zip |
Rounding out hash table functionality with lazy lists that
can walk table content in different ways.
* eval.c (op_dohash): Follow interface change of hash_next.
(eval_init): hash-keys, hash-values, hash-pairs and hash-alist
intrinsics introduced.
* filter.c (trie_compress): Follow interface change of hash_next.
* hash.c (hash_next): Silly interface which takes a pointer to
the iterator has changed to just take the iterator. The function
unambiguously returns nil when the iteration ends, so there
is no need to set the iterator variable to nil.
(maphash): Follows interface change of hash_next.
(hash_keys_lazy, hash_values_lazy, hash_pairs_lazy, hash_alist_lazy):
New static functions.
(hash_keys, hash_values, hash_pairs, hash_alist): New functions.
* hash.h (hash_next): Declaration updated.
(hash_keys, hash_values, hash_pairs, hash_alist): Declared.
* lib.c (make_half_lazy_cons): New way of constructing lazy cons,
with the car field specified. It simplifies situations when the
previous cons computes the car of the next one. Why hadn't I thought of
this before?
* lib.h (make_half_lazy_cons): Declared.
* txr.1: Doc stubs for new hash functions.
* txr.vim: Highlighting for new hash functions.
Diffstat (limited to 'txr.vim')
-rw-r--r-- | txr.vim | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -51,7 +51,13 @@ syn keyword txl_keyword contained zerop evenp oddp > < >= <= = max min syn keyword txl_keyword contained search-regex match-regex regsub syn keyword txl_keyword contained make-hash hash hash-construct gethash sethash pushhash remhash syn keyword txl_keyword contained hash-count get-hash-userdata set-hash-userdata hashp maphash -syn keyword txl_keyword contained hash-eql hash-equal eval chain andf orf iff +syn keyword txl_keyword contained hash-eql hash-equal +syn keyword txl_keyword contained hash_keys hash_values hash_pairs hash_alist +syn keyword txl_keyword contained *stdout* *stdin* *stddebug* +syn keyword txl_keyword contained *stderr* format print pprint tostring tostringp +syn keyword txl_keyword contained make-string-input-stream +syn keyword txl_keyword contained make-string-byte-input-stream make-string-output-stream +eval chain andf orf iff syn keyword txl_keyword contained *stdout* *stdin* *stddebug* syn keyword txl_keyword contained *stderr* format print pprint tostring tostringp syn keyword txl_keyword contained make-string-input-stream |