diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2019-09-30 06:51:51 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2019-09-30 06:51:51 -0700 |
commit | 48ef128584e4b15c8b83de0f10f6d077031fa0ee (patch) | |
tree | 7b05fd6dd3f85dbd9033b587a2c67a6f870706a2 | |
parent | 7e2327cd393cb1ada82ff2b80dcff73a05d98f80 (diff) | |
download | txr-48ef128584e4b15c8b83de0f10f6d077031fa0ee.tar.gz txr-48ef128584e4b15c8b83de0f10f6d077031fa0ee.tar.bz2 txr-48ef128584e4b15c8b83de0f10f6d077031fa0ee.zip |
tree: add treep predicate.
* tree.c (treep): new function.
(tree_init): Registered treep intrinsic.
-rw-r--r-- | tree.c | 6 | ||||
-rw-r--r-- | tree.h | 1 |
2 files changed, 7 insertions, 0 deletions
@@ -588,6 +588,11 @@ static val tree_construct(val opts, val keys) return tree(keys, key_fn, less_fn, equal_fn); } +val treep(val obj) +{ + return tnil(type(obj) == COBJ && obj->co.cls == tree_s); +} + void tree_init(void) { tree_s = intern(lit("tree"), user_package); @@ -598,6 +603,7 @@ void tree_init(void) reg_fun(intern(lit("key"), user_package), func_n1(key)); reg_fun(tree_s, func_n4o(tree, 0)); reg_fun(tree_construct_s, func_n2(tree_construct)); + reg_fun(intern(lit("treep"), user_package), func_n1(treep)); reg_fun(intern(lit("tree-insert-node"), user_package), func_n2(tree_insert_node)); reg_fun(intern(lit("tree-insert"), user_package), func_n2(tree_insert)); reg_fun(intern(lit("tree-lookup-node"), user_package), func_n2(tree_lookup_node)); @@ -35,4 +35,5 @@ val left(val node); val right(val node); val key(val node); val tree(val keys, val key_fn, val less_fn, val equal_fn); +val treep(val obj); void tree_init(void); |