summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2019-10-28 07:00:26 -0700
committerKaz Kylheku <kaz@kylheku.com>2019-10-28 07:00:26 -0700
commit374509f247df16d40d2535a34237fa2f5dd5863e (patch)
treecb540398c3b0bb5b4826c21edac6621e4fb483a1 /eval.c
parent6dfa89ab06bd72ae6e476306637e9e98bcf5799a (diff)
downloadtxr-374509f247df16d40d2535a34237fa2f5dd5863e.tar.gz
txr-374509f247df16d40d2535a34237fa2f5dd5863e.tar.bz2
txr-374509f247df16d40d2535a34237fa2f5dd5863e.zip
New function: identity*
An version of identity with lax argument conventions. * eval.c (eval_init): Register identity* intrinsic. * lib.c (identity_star_f): New symbol variable. (identity_star): New function. (obj_init): gc-protect identity_star_f variable, and initialize it. * lib.h (identity_star_f): Declared. * txr.1: Documented.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index 4e1c7aad..665c5d2a 100644
--- a/eval.c
+++ b/eval.c
@@ -6395,6 +6395,7 @@ void eval_init(void)
reg_fun(list_s, list_f);
reg_fun(list_star_s, func_n0v(list_star_intrinsic));
reg_fun(identity_s, identity_f);
+ reg_fun(intern(lit("identity*"), user_package), identity_star_f);
reg_fun(intern(lit("use"), user_package), identity_f);
reg_fun(intern(lit("typeof"), user_package), func_n1(typeof));
reg_fun(intern(lit("subtypep"), user_package), func_n2(subtypep));