summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-12-05 21:51:25 -0800
committerKaz Kylheku <kaz@kylheku.com>2014-12-05 21:51:25 -0800
commit0bbef1e12870a4f749a112dfb4ef8a09736e8b29 (patch)
treed1d63e73f6511aa0decb9f8799e2498942eb8906
parent93b8e741fcf0b4349653000eca67ffb8f8c95d01 (diff)
downloadtxr-0bbef1e12870a4f749a112dfb4ef8a09736e8b29.tar.gz
txr-0bbef1e12870a4f749a112dfb4ef8a09736e8b29.tar.bz2
txr-0bbef1e12870a4f749a112dfb4ef8a09736e8b29.zip
* eval.c (eval_init): Register in function as intrinsic.
* lib.c (in): New function. * lib.h (in): Declared. * txr.1: Documented in. * txr.vim, tl.vim: Regenerated.
-rw-r--r--ChangeLog12
-rw-r--r--eval.c1
-rw-r--r--lib.c70
-rw-r--r--lib.h1
-rw-r--r--tl.vim213
-rw-r--r--txr.153
-rw-r--r--txr.vim213
7 files changed, 351 insertions, 212 deletions
diff --git a/ChangeLog b/ChangeLog
index 766378f7..a39c45a3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
2014-12-05 Kaz Kylheku <kaz@kylheku.com>
+ * eval.c (eval_init): Register in function as intrinsic.
+
+ * lib.c (in): New function.
+
+ * lib.h (in): Declared.
+
+ * txr.1: Documented in.
+
+ * txr.vim, tl.vim: Regenerated.
+
+2014-12-05 Kaz Kylheku <kaz@kylheku.com>
+
* lib.c (set_diff): Bugfix: use member rather than find,
so that a nil set element is handled properly.
diff --git a/eval.c b/eval.c
index 435a6f4e..fd78afb5 100644
--- a/eval.c
+++ b/eval.c
@@ -3727,6 +3727,7 @@ void eval_init(void)
reg_fun(intern(lit("min"), user_package), func_n1v(minv));
reg_fun(intern(lit("pos-max"), user_package), func_n3o(pos_max, 1));
reg_fun(intern(lit("pos-min"), user_package), func_n3o(pos_min, 1));
+ reg_fun(intern(lit("in"), user_package), func_n4o(in, 2));
reg_fun(intern(lit("logand"), user_package), func_n0v(logandv));
reg_fun(intern(lit("logior"), user_package), func_n0v(logiorv));
reg_fun(intern(lit("logxor"), user_package), func_n2(logxor));
diff --git a/lib.c b/lib.c
index 82eb4755..8c8fd1b2 100644
--- a/lib.c
+++ b/lib.c
@@ -5978,6 +5978,76 @@ val pos_min(val seq, val testfun, val keyfun)
return pos_max(seq, default_arg(testfun, less_f), keyfun);
}
+val in(val seq, val item, val testfun, val keyfun)
+{
+ switch (type(seq)) {
+ case NIL:
+ return nil;
+ case CONS:
+ case LCONS:
+ {
+ testfun = default_arg(testfun, equal_f);
+ keyfun = default_arg(keyfun, identity_f);
+ val list = nullify(seq);
+
+ for (; list; list = cdr(list)) {
+ val elem = car(list);
+ val key = funcall1(keyfun, elem);
+
+ if (funcall2(testfun, item, key))
+ return t;
+ }
+
+ return nil;
+ }
+ case LIT:
+ case STR:
+ case LSTR:
+ {
+ testfun = default_arg(testfun, equal_f);
+ keyfun = default_arg(keyfun, identity_f);
+ val len = length_str(seq);
+ val ind;
+
+ for (ind = zero; lt(ind, len); ind = plus(ind, one)) {
+ val elem = chr_str(seq, ind);
+ val key = funcall1(keyfun, elem);
+
+ if (funcall2(testfun, item, key))
+ return t;
+ }
+
+ return nil;
+ }
+ case VEC:
+ {
+ testfun = default_arg(testfun, equal_f);
+ keyfun = default_arg(keyfun, identity_f);
+ val len = length_vec(seq);
+ val ind;
+
+ for (ind = zero; lt(ind, len); ind = plus(ind, one)) {
+ val elem = vecref(seq, ind);
+ val key = funcall1(keyfun, elem);
+
+ if (funcall2(testfun, item, key))
+ return t;
+ }
+
+ return nil;
+ }
+ case COBJ:
+ if (seq->co.cls == hash_s) {
+ val found;
+ gethash_f(seq, item, mkcloc(found));
+ return if3(found, t, nil);
+ }
+ /* fallthrough */
+ default:
+ type_mismatch(lit("in: ~s is not a sequence or hash"), seq, nao);
+ }
+}
+
val set_diff(val list1, val list2, val testfun, val keyfun)
{
list_collect_decl (out, ptail);
diff --git a/lib.h b/lib.h
index ab5e61ed..6ac97ff6 100644
--- a/lib.h
+++ b/lib.h
@@ -815,6 +815,7 @@ val pos(val list, val key, val testfun, val keyfun);
val pos_if(val pred, val list, val key);
val pos_max(val seq, val testfun, val keyfun);
val pos_min(val seq, val testfun, val keyfun);
+val in(val seq, val key, val testfun, val keyfun);
val set_diff(val list1, val list2, val testfun, val keyfun);
val copy(val seq);
val length(val seq);
diff --git a/tl.vim b/tl.vim
index aa72d5fa..857ddf96 100644
--- a/tl.vim
+++ b/tl.vim
@@ -77,112 +77,113 @@ syn keyword txl_keyword contained hash-isec hash-keys hash-pairs hash-uni
syn keyword txl_keyword contained hash-update hash-update-1 hash-values hashp
syn keyword txl_keyword contained html-decode html-encode iapply identity
syn keyword txl_keyword contained ido if iff iffi
-syn keyword txl_keyword contained inc inhash int-flo int-str
-syn keyword txl_keyword contained integerp intern interp-fun-p interpose
-syn keyword txl_keyword contained ip ipf isqrt itimer-prov
-syn keyword txl_keyword contained itimer-real itimer-virtual juxt keep-if
-syn keyword txl_keyword contained keep-if* keywordp kill labels
-syn keyword txl_keyword contained lambda last lazy-str lazy-str-force
-syn keyword txl_keyword contained lazy-str-force-upto lazy-str-get-trailing-list lazy-stream-cons lazy-stringp
-syn keyword txl_keyword contained lbind lcm lcons-fun lconsp
-syn keyword txl_keyword contained ldiff length length-list length-str
-syn keyword txl_keyword contained length-str-< length-str-<= length-str-> length-str->=
-syn keyword txl_keyword contained length-vec lequal less let
-syn keyword txl_keyword contained let* link lisp-parse list
-syn keyword txl_keyword contained list* list-str list-vector listp
-syn keyword txl_keyword contained log log-alert log-auth log-authpriv
-syn keyword txl_keyword contained log-cons log-crit log-daemon log-debug
-syn keyword txl_keyword contained log-emerg log-err log-info log-ndelay
-syn keyword txl_keyword contained log-notice log-nowait log-odelay log-perror
-syn keyword txl_keyword contained log-pid log-user log-warning log10
-syn keyword txl_keyword contained log2 logand logior lognot
-syn keyword txl_keyword contained logtest logtrunc logxor macro-form-p
-syn keyword txl_keyword contained macro-time macroexpand macroexpand-1 macrolet
-syn keyword txl_keyword contained major make-catenated-stream make-env make-hash
-syn keyword txl_keyword contained make-lazy-cons make-like make-package make-random-state
-syn keyword txl_keyword contained make-similar-hash make-string-byte-input-stream make-string-input-stream make-string-output-stream
-syn keyword txl_keyword contained make-strlist-output-stream make-sym make-time make-time-utc
-syn keyword txl_keyword contained make-trie makedev mapcar mapcar*
-syn keyword txl_keyword contained mapdo maphash mappend mappend*
-syn keyword txl_keyword contained mask match-fun match-regex match-regex-right
-syn keyword txl_keyword contained match-str match-str-tree max member
-syn keyword txl_keyword contained member-if memq memql memqual
-syn keyword txl_keyword contained merge min minor mkdir
-syn keyword txl_keyword contained mknod mkstring mod multi
-syn keyword txl_keyword contained multi-sort n-choose-k n-perm-k nconc
-syn keyword txl_keyword contained nilf none not notf
-syn keyword txl_keyword contained nreverse null nullify num-chr
-syn keyword txl_keyword contained num-str numberp oand oddp
-syn keyword txl_keyword contained op open-command open-directory open-file
-syn keyword txl_keyword contained open-files open-files* open-pipe open-process
-syn keyword txl_keyword contained open-tail openlog opip or
-syn keyword txl_keyword contained orf packagep partition partition*
-syn keyword txl_keyword contained partition-by perm pop pos
-syn keyword txl_keyword contained pos-if pos-max pos-min posq
-syn keyword txl_keyword contained posql posqual pppred ppred
-syn keyword txl_keyword contained pprinl pprint pprof pred
-syn keyword txl_keyword contained prinl print prof prog1
-syn keyword txl_keyword contained progn prop proper-listp push
-syn keyword txl_keyword contained pushhash put-byte put-char put-line
-syn keyword txl_keyword contained put-lines put-string put-strings pwd
-syn keyword txl_keyword contained qquote quasi quasilist quote
-syn keyword txl_keyword contained rand random random-fixnum random-state-p
-syn keyword txl_keyword contained range range* range-regex rcomb
-syn keyword txl_keyword contained read readlink real-time-stream-p reduce-left
-syn keyword txl_keyword contained reduce-right ref refset regex-compile
-syn keyword txl_keyword contained regex-parse regexp regsub rehome-sym
-syn keyword txl_keyword contained remhash remove-if remove-if* remove-path
-syn keyword txl_keyword contained remq remq* remql remql*
-syn keyword txl_keyword contained remqual remqual* rename-path repeat
-syn keyword txl_keyword contained replace replace-list replace-str replace-vec
-syn keyword txl_keyword contained rest ret retf return
-syn keyword txl_keyword contained return-from reverse rlcp rperm
-syn keyword txl_keyword contained rplaca rplacd run s-ifblk
-syn keyword txl_keyword contained s-ifchr s-ifdir s-ififo s-iflnk
-syn keyword txl_keyword contained s-ifmt s-ifreg s-ifsock s-irgrp
-syn keyword txl_keyword contained s-iroth s-irusr s-irwxg s-irwxo
-syn keyword txl_keyword contained s-irwxu s-isgid s-isuid s-isvtx
-syn keyword txl_keyword contained s-iwgrp s-iwoth s-iwusr s-ixgrp
-syn keyword txl_keyword contained s-ixoth s-ixusr search search-regex
-syn keyword txl_keyword contained search-str search-str-tree second seek-stream
-syn keyword txl_keyword contained select seqp set set-diff
-syn keyword txl_keyword contained set-hash-userdata set-sig-handler sethash setitimer
-syn keyword txl_keyword contained setlogmask sh sig-abrt sig-alrm
-syn keyword txl_keyword contained sig-bus sig-check sig-chld sig-cont
-syn keyword txl_keyword contained sig-fpe sig-hup sig-ill sig-int
-syn keyword txl_keyword contained sig-io sig-iot sig-kill sig-lost
-syn keyword txl_keyword contained sig-pipe sig-poll sig-prof sig-pwr
-syn keyword txl_keyword contained sig-quit sig-segv sig-stkflt sig-stop
-syn keyword txl_keyword contained sig-sys sig-term sig-trap sig-tstp
-syn keyword txl_keyword contained sig-ttin sig-ttou sig-urg sig-usr1
-syn keyword txl_keyword contained sig-usr2 sig-vtalrm sig-winch sig-xcpu
-syn keyword txl_keyword contained sig-xfsz sin sixth size-vec
-syn keyword txl_keyword contained some sort sort-group source-loc
-syn keyword txl_keyword contained source-loc-str span-str splice split-str
-syn keyword txl_keyword contained split-str-set sqrt sssucc ssucc
-syn keyword txl_keyword contained stat stdlib str< str<=
-syn keyword txl_keyword contained str= str> str>= stream-get-prop
-syn keyword txl_keyword contained stream-set-prop streamp string-extend string-lt
-syn keyword txl_keyword contained stringp sub sub-list sub-str
-syn keyword txl_keyword contained sub-vec succ symacrolet symbol-function
-syn keyword txl_keyword contained symbol-name symbol-package symbol-value symbolp
-syn keyword txl_keyword contained symlink sys-qquote sys-splice sys-unquote
-syn keyword txl_keyword contained syslog tan tb tc
-syn keyword txl_keyword contained tf third throw throwf
-syn keyword txl_keyword contained time time-fields-local time-fields-utc time-string-local
-syn keyword txl_keyword contained time-string-utc time-usec tofloat toint
-syn keyword txl_keyword contained tok-str tok-where tostring tostringp
-syn keyword txl_keyword contained transpose tree-bind tree-case tree-find
-syn keyword txl_keyword contained trie-add trie-compress trie-lookup-begin trie-lookup-feed-char
-syn keyword txl_keyword contained trie-value-at trim-str true trunc
-syn keyword txl_keyword contained tuples txr-case txr-if txr-when
-syn keyword txl_keyword contained typeof unget-byte unget-char uniq
-syn keyword txl_keyword contained unless unquote until upcase-str
-syn keyword txl_keyword contained update url-decode url-encode usleep
-syn keyword txl_keyword contained uw-protect vec vec-push vec-set-length
-syn keyword txl_keyword contained vecref vector vector-list vectorp
-syn keyword txl_keyword contained when where while with-saved-vars
-syn keyword txl_keyword contained wrap wrap* zerop zip
+syn keyword txl_keyword contained in inc inhash int-flo
+syn keyword txl_keyword contained int-str integerp intern interp-fun-p
+syn keyword txl_keyword contained interpose ip ipf isqrt
+syn keyword txl_keyword contained itimer-prov itimer-real itimer-virtual juxt
+syn keyword txl_keyword contained keep-if keep-if* keywordp kill
+syn keyword txl_keyword contained labels lambda last lazy-str
+syn keyword txl_keyword contained lazy-str-force lazy-str-force-upto lazy-str-get-trailing-list lazy-stream-cons
+syn keyword txl_keyword contained lazy-stringp lbind lcm lcons-fun
+syn keyword txl_keyword contained lconsp ldiff length length-list
+syn keyword txl_keyword contained length-str length-str-< length-str-<= length-str->
+syn keyword txl_keyword contained length-str->= length-vec lequal less
+syn keyword txl_keyword contained let let* link lisp-parse
+syn keyword txl_keyword contained list list* list-str list-vector
+syn keyword txl_keyword contained listp log log-alert log-auth
+syn keyword txl_keyword contained log-authpriv log-cons log-crit log-daemon
+syn keyword txl_keyword contained log-debug log-emerg log-err log-info
+syn keyword txl_keyword contained log-ndelay log-notice log-nowait log-odelay
+syn keyword txl_keyword contained log-perror log-pid log-user log-warning
+syn keyword txl_keyword contained log10 log2 logand logior
+syn keyword txl_keyword contained lognot logtest logtrunc logxor
+syn keyword txl_keyword contained macro-form-p macro-time macroexpand macroexpand-1
+syn keyword txl_keyword contained macrolet major make-catenated-stream make-env
+syn keyword txl_keyword contained make-hash make-lazy-cons make-like make-package
+syn keyword txl_keyword contained make-random-state make-similar-hash make-string-byte-input-stream make-string-input-stream
+syn keyword txl_keyword contained make-string-output-stream make-strlist-output-stream make-sym make-time
+syn keyword txl_keyword contained make-time-utc make-trie makedev mapcar
+syn keyword txl_keyword contained mapcar* mapdo maphash mappend
+syn keyword txl_keyword contained mappend* mask match-fun match-regex
+syn keyword txl_keyword contained match-regex-right match-str match-str-tree max
+syn keyword txl_keyword contained member member-if memq memql
+syn keyword txl_keyword contained memqual merge min minor
+syn keyword txl_keyword contained mkdir mknod mkstring mod
+syn keyword txl_keyword contained multi multi-sort n-choose-k n-perm-k
+syn keyword txl_keyword contained nconc nilf none not
+syn keyword txl_keyword contained notf nreverse null nullify
+syn keyword txl_keyword contained num-chr num-str numberp oand
+syn keyword txl_keyword contained oddp op open-command open-directory
+syn keyword txl_keyword contained open-file open-files open-files* open-pipe
+syn keyword txl_keyword contained open-process open-tail openlog opip
+syn keyword txl_keyword contained or orf packagep partition
+syn keyword txl_keyword contained partition* partition-by perm pop
+syn keyword txl_keyword contained pos pos-if pos-max pos-min
+syn keyword txl_keyword contained posq posql posqual pppred
+syn keyword txl_keyword contained ppred pprinl pprint pprof
+syn keyword txl_keyword contained pred prinl print prof
+syn keyword txl_keyword contained prog1 progn prop proper-listp
+syn keyword txl_keyword contained push pushhash put-byte put-char
+syn keyword txl_keyword contained put-line put-lines put-string put-strings
+syn keyword txl_keyword contained pwd qquote quasi quasilist
+syn keyword txl_keyword contained quote rand random random-fixnum
+syn keyword txl_keyword contained random-state-p range range* range-regex
+syn keyword txl_keyword contained rcomb read readlink real-time-stream-p
+syn keyword txl_keyword contained reduce-left reduce-right ref refset
+syn keyword txl_keyword contained regex-compile regex-parse regexp regsub
+syn keyword txl_keyword contained rehome-sym remhash remove-if remove-if*
+syn keyword txl_keyword contained remove-path remq remq* remql
+syn keyword txl_keyword contained remql* remqual remqual* rename-path
+syn keyword txl_keyword contained repeat replace replace-list replace-str
+syn keyword txl_keyword contained replace-vec rest ret retf
+syn keyword txl_keyword contained return return-from reverse rlcp
+syn keyword txl_keyword contained rperm rplaca rplacd run
+syn keyword txl_keyword contained s-ifblk s-ifchr s-ifdir s-ififo
+syn keyword txl_keyword contained s-iflnk s-ifmt s-ifreg s-ifsock
+syn keyword txl_keyword contained s-irgrp s-iroth s-irusr s-irwxg
+syn keyword txl_keyword contained s-irwxo s-irwxu s-isgid s-isuid
+syn keyword txl_keyword contained s-isvtx s-iwgrp s-iwoth s-iwusr
+syn keyword txl_keyword contained s-ixgrp s-ixoth s-ixusr search
+syn keyword txl_keyword contained search-regex search-str search-str-tree second
+syn keyword txl_keyword contained seek-stream select seqp set
+syn keyword txl_keyword contained set-diff set-hash-userdata set-sig-handler sethash
+syn keyword txl_keyword contained setitimer setlogmask sh sig-abrt
+syn keyword txl_keyword contained sig-alrm sig-bus sig-check sig-chld
+syn keyword txl_keyword contained sig-cont sig-fpe sig-hup sig-ill
+syn keyword txl_keyword contained sig-int sig-io sig-iot sig-kill
+syn keyword txl_keyword contained sig-lost sig-pipe sig-poll sig-prof
+syn keyword txl_keyword contained sig-pwr sig-quit sig-segv sig-stkflt
+syn keyword txl_keyword contained sig-stop sig-sys sig-term sig-trap
+syn keyword txl_keyword contained sig-tstp sig-ttin sig-ttou sig-urg
+syn keyword txl_keyword contained sig-usr1 sig-usr2 sig-vtalrm sig-winch
+syn keyword txl_keyword contained sig-xcpu sig-xfsz sin sixth
+syn keyword txl_keyword contained size-vec some sort sort-group
+syn keyword txl_keyword contained source-loc source-loc-str span-str splice
+syn keyword txl_keyword contained split-str split-str-set sqrt sssucc
+syn keyword txl_keyword contained ssucc stat stdlib str<
+syn keyword txl_keyword contained str<= str= str> str>=
+syn keyword txl_keyword contained stream-get-prop stream-set-prop streamp string-extend
+syn keyword txl_keyword contained string-lt stringp sub sub-list
+syn keyword txl_keyword contained sub-str sub-vec succ symacrolet
+syn keyword txl_keyword contained symbol-function symbol-name symbol-package symbol-value
+syn keyword txl_keyword contained symbolp symlink sys-qquote sys-splice
+syn keyword txl_keyword contained sys-unquote syslog tan tb
+syn keyword txl_keyword contained tc tf third throw
+syn keyword txl_keyword contained throwf time time-fields-local time-fields-utc
+syn keyword txl_keyword contained time-string-local time-string-utc time-usec tofloat
+syn keyword txl_keyword contained toint tok-str tok-where tostring
+syn keyword txl_keyword contained tostringp transpose tree-bind tree-case
+syn keyword txl_keyword contained tree-find trie-add trie-compress trie-lookup-begin
+syn keyword txl_keyword contained trie-lookup-feed-char trie-value-at trim-str true
+syn keyword txl_keyword contained trunc tuples txr-case txr-if
+syn keyword txl_keyword contained txr-when typeof unget-byte unget-char
+syn keyword txl_keyword contained uniq unless unquote until
+syn keyword txl_keyword contained upcase-str update url-decode url-encode
+syn keyword txl_keyword contained usleep uw-protect vec vec-push
+syn keyword txl_keyword contained vec-set-length vecref vector vector-list
+syn keyword txl_keyword contained vectorp when where while
+syn keyword txl_keyword contained with-saved-vars wrap wrap* zerop
+syn keyword txl_keyword contained zip
syn match txr_metanum "@[0-9]\+"
syn match txr_nested_error "[^\t `]\+" contained
diff --git a/txr.1 b/txr.1
index d0b533f7..a68cc498 100644
--- a/txr.1
+++ b/txr.1
@@ -13385,6 +13385,59 @@ is processed, even if it contains
keys which are not in
.metn object .
+.coNP Funtion @ in
+.synb
+.mets (in < sequence < key >> [ testfun <> [ keyfun ]])
+.mets (in < hash << key )
+.syne
+.desc
+The
+.code in
+function tests whether
+.meta key
+is found inside
+.meta sequence
+or
+.metn hash .
+
+If the
+.meta testfun
+argument is specified, it specifies the function
+which is used to comparison keys from the sequence
+to
+.metn key .
+Otherwise the
+.code equal
+function is used.
+
+If the
+.meta keyfun
+argument is specified, it specifies a function which
+is applied to the elements of
+.meta sequence
+to produce the comparison keys. Without this
+argument, the elements themselves are taken
+as the comparison keys.
+
+If the object being searched is a hash, then the
+.meta keyfun
+and
+.meta testfun
+arguments are ignored.
+
+The
+.code in
+function returns
+.code t
+if it finds
+.meta key
+in
+.meta sequence
+or
+.metn hash,
+otherwise
+.codn nil .
+
.coNP Funtion @ partition
.synb
.mets (partition < sequence >> { index-list >> | index <> | function })
diff --git a/txr.vim b/txr.vim
index 795b9518..886e4e77 100644
--- a/txr.vim
+++ b/txr.vim
@@ -77,112 +77,113 @@ syn keyword txl_keyword contained hash-isec hash-keys hash-pairs hash-uni
syn keyword txl_keyword contained hash-update hash-update-1 hash-values hashp
syn keyword txl_keyword contained html-decode html-encode iapply identity
syn keyword txl_keyword contained ido if iff iffi
-syn keyword txl_keyword contained inc inhash int-flo int-str
-syn keyword txl_keyword contained integerp intern interp-fun-p interpose
-syn keyword txl_keyword contained ip ipf isqrt itimer-prov
-syn keyword txl_keyword contained itimer-real itimer-virtual juxt keep-if
-syn keyword txl_keyword contained keep-if* keywordp kill labels
-syn keyword txl_keyword contained lambda last lazy-str lazy-str-force
-syn keyword txl_keyword contained lazy-str-force-upto lazy-str-get-trailing-list lazy-stream-cons lazy-stringp
-syn keyword txl_keyword contained lbind lcm lcons-fun lconsp
-syn keyword txl_keyword contained ldiff length length-list length-str
-syn keyword txl_keyword contained length-str-< length-str-<= length-str-> length-str->=
-syn keyword txl_keyword contained length-vec lequal less let
-syn keyword txl_keyword contained let* link lisp-parse list
-syn keyword txl_keyword contained list* list-str list-vector listp
-syn keyword txl_keyword contained log log-alert log-auth log-authpriv
-syn keyword txl_keyword contained log-cons log-crit log-daemon log-debug
-syn keyword txl_keyword contained log-emerg log-err log-info log-ndelay
-syn keyword txl_keyword contained log-notice log-nowait log-odelay log-perror
-syn keyword txl_keyword contained log-pid log-user log-warning log10
-syn keyword txl_keyword contained log2 logand logior lognot
-syn keyword txl_keyword contained logtest logtrunc logxor macro-form-p
-syn keyword txl_keyword contained macro-time macroexpand macroexpand-1 macrolet
-syn keyword txl_keyword contained major make-catenated-stream make-env make-hash
-syn keyword txl_keyword contained make-lazy-cons make-like make-package make-random-state
-syn keyword txl_keyword contained make-similar-hash make-string-byte-input-stream make-string-input-stream make-string-output-stream
-syn keyword txl_keyword contained make-strlist-output-stream make-sym make-time make-time-utc
-syn keyword txl_keyword contained make-trie makedev mapcar mapcar*
-syn keyword txl_keyword contained mapdo maphash mappend mappend*
-syn keyword txl_keyword contained mask match-fun match-regex match-regex-right
-syn keyword txl_keyword contained match-str match-str-tree max member
-syn keyword txl_keyword contained member-if memq memql memqual
-syn keyword txl_keyword contained merge min minor mkdir
-syn keyword txl_keyword contained mknod mkstring mod multi
-syn keyword txl_keyword contained multi-sort n-choose-k n-perm-k nconc
-syn keyword txl_keyword contained nilf none not notf
-syn keyword txl_keyword contained nreverse null nullify num-chr
-syn keyword txl_keyword contained num-str numberp oand oddp
-syn keyword txl_keyword contained op open-command open-directory open-file
-syn keyword txl_keyword contained open-files open-files* open-pipe open-process
-syn keyword txl_keyword contained open-tail openlog opip or
-syn keyword txl_keyword contained orf packagep partition partition*
-syn keyword txl_keyword contained partition-by perm pop pos
-syn keyword txl_keyword contained pos-if pos-max pos-min posq
-syn keyword txl_keyword contained posql posqual pppred ppred
-syn keyword txl_keyword contained pprinl pprint pprof pred
-syn keyword txl_keyword contained prinl print prof prog1
-syn keyword txl_keyword contained progn prop proper-listp push
-syn keyword txl_keyword contained pushhash put-byte put-char put-line
-syn keyword txl_keyword contained put-lines put-string put-strings pwd
-syn keyword txl_keyword contained qquote quasi quasilist quote
-syn keyword txl_keyword contained rand random random-fixnum random-state-p
-syn keyword txl_keyword contained range range* range-regex rcomb
-syn keyword txl_keyword contained read readlink real-time-stream-p reduce-left
-syn keyword txl_keyword contained reduce-right ref refset regex-compile
-syn keyword txl_keyword contained regex-parse regexp regsub rehome-sym
-syn keyword txl_keyword contained remhash remove-if remove-if* remove-path
-syn keyword txl_keyword contained remq remq* remql remql*
-syn keyword txl_keyword contained remqual remqual* rename-path repeat
-syn keyword txl_keyword contained replace replace-list replace-str replace-vec
-syn keyword txl_keyword contained rest ret retf return
-syn keyword txl_keyword contained return-from reverse rlcp rperm
-syn keyword txl_keyword contained rplaca rplacd run s-ifblk
-syn keyword txl_keyword contained s-ifchr s-ifdir s-ififo s-iflnk
-syn keyword txl_keyword contained s-ifmt s-ifreg s-ifsock s-irgrp
-syn keyword txl_keyword contained s-iroth s-irusr s-irwxg s-irwxo
-syn keyword txl_keyword contained s-irwxu s-isgid s-isuid s-isvtx
-syn keyword txl_keyword contained s-iwgrp s-iwoth s-iwusr s-ixgrp
-syn keyword txl_keyword contained s-ixoth s-ixusr search search-regex
-syn keyword txl_keyword contained search-str search-str-tree second seek-stream
-syn keyword txl_keyword contained select seqp set set-diff
-syn keyword txl_keyword contained set-hash-userdata set-sig-handler sethash setitimer
-syn keyword txl_keyword contained setlogmask sh sig-abrt sig-alrm
-syn keyword txl_keyword contained sig-bus sig-check sig-chld sig-cont
-syn keyword txl_keyword contained sig-fpe sig-hup sig-ill sig-int
-syn keyword txl_keyword contained sig-io sig-iot sig-kill sig-lost
-syn keyword txl_keyword contained sig-pipe sig-poll sig-prof sig-pwr
-syn keyword txl_keyword contained sig-quit sig-segv sig-stkflt sig-stop
-syn keyword txl_keyword contained sig-sys sig-term sig-trap sig-tstp
-syn keyword txl_keyword contained sig-ttin sig-ttou sig-urg sig-usr1
-syn keyword txl_keyword contained sig-usr2 sig-vtalrm sig-winch sig-xcpu
-syn keyword txl_keyword contained sig-xfsz sin sixth size-vec
-syn keyword txl_keyword contained some sort sort-group source-loc
-syn keyword txl_keyword contained source-loc-str span-str splice split-str
-syn keyword txl_keyword contained split-str-set sqrt sssucc ssucc
-syn keyword txl_keyword contained stat stdlib str< str<=
-syn keyword txl_keyword contained str= str> str>= stream-get-prop
-syn keyword txl_keyword contained stream-set-prop streamp string-extend string-lt
-syn keyword txl_keyword contained stringp sub sub-list sub-str
-syn keyword txl_keyword contained sub-vec succ symacrolet symbol-function
-syn keyword txl_keyword contained symbol-name symbol-package symbol-value symbolp
-syn keyword txl_keyword contained symlink sys-qquote sys-splice sys-unquote
-syn keyword txl_keyword contained syslog tan tb tc
-syn keyword txl_keyword contained tf third throw throwf
-syn keyword txl_keyword contained time time-fields-local time-fields-utc time-string-local
-syn keyword txl_keyword contained time-string-utc time-usec tofloat toint
-syn keyword txl_keyword contained tok-str tok-where tostring tostringp
-syn keyword txl_keyword contained transpose tree-bind tree-case tree-find
-syn keyword txl_keyword contained trie-add trie-compress trie-lookup-begin trie-lookup-feed-char
-syn keyword txl_keyword contained trie-value-at trim-str true trunc
-syn keyword txl_keyword contained tuples txr-case txr-if txr-when
-syn keyword txl_keyword contained typeof unget-byte unget-char uniq
-syn keyword txl_keyword contained unless unquote until upcase-str
-syn keyword txl_keyword contained update url-decode url-encode usleep
-syn keyword txl_keyword contained uw-protect vec vec-push vec-set-length
-syn keyword txl_keyword contained vecref vector vector-list vectorp
-syn keyword txl_keyword contained when where while with-saved-vars
-syn keyword txl_keyword contained wrap wrap* zerop zip
+syn keyword txl_keyword contained in inc inhash int-flo
+syn keyword txl_keyword contained int-str integerp intern interp-fun-p
+syn keyword txl_keyword contained interpose ip ipf isqrt
+syn keyword txl_keyword contained itimer-prov itimer-real itimer-virtual juxt
+syn keyword txl_keyword contained keep-if keep-if* keywordp kill
+syn keyword txl_keyword contained labels lambda last lazy-str
+syn keyword txl_keyword contained lazy-str-force lazy-str-force-upto lazy-str-get-trailing-list lazy-stream-cons
+syn keyword txl_keyword contained lazy-stringp lbind lcm lcons-fun
+syn keyword txl_keyword contained lconsp ldiff length length-list
+syn keyword txl_keyword contained length-str length-str-< length-str-<= length-str->
+syn keyword txl_keyword contained length-str->= length-vec lequal less
+syn keyword txl_keyword contained let let* link lisp-parse
+syn keyword txl_keyword contained list list* list-str list-vector
+syn keyword txl_keyword contained listp log log-alert log-auth
+syn keyword txl_keyword contained log-authpriv log-cons log-crit log-daemon
+syn keyword txl_keyword contained log-debug log-emerg log-err log-info
+syn keyword txl_keyword contained log-ndelay log-notice log-nowait log-odelay
+syn keyword txl_keyword contained log-perror log-pid log-user log-warning
+syn keyword txl_keyword contained log10 log2 logand logior
+syn keyword txl_keyword contained lognot logtest logtrunc logxor
+syn keyword txl_keyword contained macro-form-p macro-time macroexpand macroexpand-1
+syn keyword txl_keyword contained macrolet major make-catenated-stream make-env
+syn keyword txl_keyword contained make-hash make-lazy-cons make-like make-package
+syn keyword txl_keyword contained make-random-state make-similar-hash make-string-byte-input-stream make-string-input-stream
+syn keyword txl_keyword contained make-string-output-stream make-strlist-output-stream make-sym make-time
+syn keyword txl_keyword contained make-time-utc make-trie makedev mapcar
+syn keyword txl_keyword contained mapcar* mapdo maphash mappend
+syn keyword txl_keyword contained mappend* mask match-fun match-regex
+syn keyword txl_keyword contained match-regex-right match-str match-str-tree max
+syn keyword txl_keyword contained member member-if memq memql
+syn keyword txl_keyword contained memqual merge min minor
+syn keyword txl_keyword contained mkdir mknod mkstring mod
+syn keyword txl_keyword contained multi multi-sort n-choose-k n-perm-k
+syn keyword txl_keyword contained nconc nilf none not
+syn keyword txl_keyword contained notf nreverse null nullify
+syn keyword txl_keyword contained num-chr num-str numberp oand
+syn keyword txl_keyword contained oddp op open-command open-directory
+syn keyword txl_keyword contained open-file open-files open-files* open-pipe
+syn keyword txl_keyword contained open-process open-tail openlog opip
+syn keyword txl_keyword contained or orf packagep partition
+syn keyword txl_keyword contained partition* partition-by perm pop
+syn keyword txl_keyword contained pos pos-if pos-max pos-min
+syn keyword txl_keyword contained posq posql posqual pppred
+syn keyword txl_keyword contained ppred pprinl pprint pprof
+syn keyword txl_keyword contained pred prinl print prof
+syn keyword txl_keyword contained prog1 progn prop proper-listp
+syn keyword txl_keyword contained push pushhash put-byte put-char
+syn keyword txl_keyword contained put-line put-lines put-string put-strings
+syn keyword txl_keyword contained pwd qquote quasi quasilist
+syn keyword txl_keyword contained quote rand random random-fixnum
+syn keyword txl_keyword contained random-state-p range range* range-regex
+syn keyword txl_keyword contained rcomb read readlink real-time-stream-p
+syn keyword txl_keyword contained reduce-left reduce-right ref refset
+syn keyword txl_keyword contained regex-compile regex-parse regexp regsub
+syn keyword txl_keyword contained rehome-sym remhash remove-if remove-if*
+syn keyword txl_keyword contained remove-path remq remq* remql
+syn keyword txl_keyword contained remql* remqual remqual* rename-path
+syn keyword txl_keyword contained repeat replace replace-list replace-str
+syn keyword txl_keyword contained replace-vec rest ret retf
+syn keyword txl_keyword contained return return-from reverse rlcp
+syn keyword txl_keyword contained rperm rplaca rplacd run
+syn keyword txl_keyword contained s-ifblk s-ifchr s-ifdir s-ififo
+syn keyword txl_keyword contained s-iflnk s-ifmt s-ifreg s-ifsock
+syn keyword txl_keyword contained s-irgrp s-iroth s-irusr s-irwxg
+syn keyword txl_keyword contained s-irwxo s-irwxu s-isgid s-isuid
+syn keyword txl_keyword contained s-isvtx s-iwgrp s-iwoth s-iwusr
+syn keyword txl_keyword contained s-ixgrp s-ixoth s-ixusr search
+syn keyword txl_keyword contained search-regex search-str search-str-tree second
+syn keyword txl_keyword contained seek-stream select seqp set
+syn keyword txl_keyword contained set-diff set-hash-userdata set-sig-handler sethash
+syn keyword txl_keyword contained setitimer setlogmask sh sig-abrt
+syn keyword txl_keyword contained sig-alrm sig-bus sig-check sig-chld
+syn keyword txl_keyword contained sig-cont sig-fpe sig-hup sig-ill
+syn keyword txl_keyword contained sig-int sig-io sig-iot sig-kill
+syn keyword txl_keyword contained sig-lost sig-pipe sig-poll sig-prof
+syn keyword txl_keyword contained sig-pwr sig-quit sig-segv sig-stkflt
+syn keyword txl_keyword contained sig-stop sig-sys sig-term sig-trap
+syn keyword txl_keyword contained sig-tstp sig-ttin sig-ttou sig-urg
+syn keyword txl_keyword contained sig-usr1 sig-usr2 sig-vtalrm sig-winch
+syn keyword txl_keyword contained sig-xcpu sig-xfsz sin sixth
+syn keyword txl_keyword contained size-vec some sort sort-group
+syn keyword txl_keyword contained source-loc source-loc-str span-str splice
+syn keyword txl_keyword contained split-str split-str-set sqrt sssucc
+syn keyword txl_keyword contained ssucc stat stdlib str<
+syn keyword txl_keyword contained str<= str= str> str>=
+syn keyword txl_keyword contained stream-get-prop stream-set-prop streamp string-extend
+syn keyword txl_keyword contained string-lt stringp sub sub-list
+syn keyword txl_keyword contained sub-str sub-vec succ symacrolet
+syn keyword txl_keyword contained symbol-function symbol-name symbol-package symbol-value
+syn keyword txl_keyword contained symbolp symlink sys-qquote sys-splice
+syn keyword txl_keyword contained sys-unquote syslog tan tb
+syn keyword txl_keyword contained tc tf third throw
+syn keyword txl_keyword contained throwf time time-fields-local time-fields-utc
+syn keyword txl_keyword contained time-string-local time-string-utc time-usec tofloat
+syn keyword txl_keyword contained toint tok-str tok-where tostring
+syn keyword txl_keyword contained tostringp transpose tree-bind tree-case
+syn keyword txl_keyword contained tree-find trie-add trie-compress trie-lookup-begin
+syn keyword txl_keyword contained trie-lookup-feed-char trie-value-at trim-str true
+syn keyword txl_keyword contained trunc tuples txr-case txr-if
+syn keyword txl_keyword contained txr-when typeof unget-byte unget-char
+syn keyword txl_keyword contained uniq unless unquote until
+syn keyword txl_keyword contained upcase-str update url-decode url-encode
+syn keyword txl_keyword contained usleep uw-protect vec vec-push
+syn keyword txl_keyword contained vec-set-length vecref vector vector-list
+syn keyword txl_keyword contained vectorp when where while
+syn keyword txl_keyword contained with-saved-vars wrap wrap* zerop
+syn keyword txl_keyword contained zip
syn keyword txr_keyword contained accept all and assert
syn keyword txr_keyword contained bind block cases cat