aboutsummaryrefslogtreecommitdiff
path: root/bash/core.sh
diff options
context:
space:
mode:
authorJoel Martin <github@martintribe.org>2014-12-18 20:33:49 -0600
committerJoel Martin <github@martintribe.org>2015-01-09 16:16:50 -0600
commitb8ee29b22fbaa7a01f2754b4d6dd9af52e02017c (patch)
treef4d977ed220e9a3f665cfbf4f68770a81e4c2095 /bash/core.sh
parentaaba249304b184e12e2445ab22d66df1f39a51a5 (diff)
downloadmal-b8ee29b22fbaa7a01f2754b4d6dd9af52e02017c.tar.gz
mal-b8ee29b22fbaa7a01f2754b4d6dd9af52e02017c.zip
All: add keywords.
Also, fix nth and count to match cloure.
Diffstat (limited to 'bash/core.sh')
-rw-r--r--bash/core.sh12
1 files changed, 12 insertions, 0 deletions
diff --git a/bash/core.sh b/bash/core.sh
index c8a0261..ca53c43 100644
--- a/bash/core.sh
+++ b/bash/core.sh
@@ -41,6 +41,11 @@ false? () { _false? "${1}" && r="${__true}" || r="${__false}"; }
symbol? () { _symbol? "${1}" && r="${__true}" || r="${__false}"; }
+# Keyword functions
+
+keyword? () { _keyword? "${1}" && r="${__true}" || r="${__false}"; }
+
+
# Number functions
number? () { _number? "${1}" && r="${__true}" || r="${__false}"; }
@@ -230,6 +235,10 @@ concat () {
nth () {
_nth "${1}" "${ANON["${2}"]}"
+ if [ -z "${r}" ]; then
+ _error "nth: index out of bounds"
+ return
+ fi
}
empty? () { _empty? "${1}" && r="${__true}" || r="${__false}"; }
@@ -316,7 +325,10 @@ declare -A core_ns=(
[nil?]=nil?
[true?]=true?
[false?]=false?
+ [symbol]=_symbol
[symbol?]=symbol?
+ [keyword]=_keyword
+ [keyword?]=keyword?
[pr-str]=pr_str
[str]=str