aboutsummaryrefslogtreecommitdiff
path: root/interpreter.py
diff options
context:
space:
mode:
authormryouse2022-05-23 00:50:24 +0000
committermryouse2022-05-23 00:50:24 +0000
commit8fa2ede632127492bc207ab7fd0dbce9cd19c7c3 (patch)
tree30259f7afa35bc6cceb63ebd294a61e2fc8ee5b5 /interpreter.py
parent93c8a167ed7e8a8288e813bd0bd2bc54f7bb769d (diff)
implement list-length
Diffstat (limited to 'interpreter.py')
-rw-r--r--interpreter.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/interpreter.py b/interpreter.py
index 03b5c00..c491150 100644
--- a/interpreter.py
+++ b/interpreter.py
@@ -357,6 +357,14 @@ GLOBALS.register("strip", Builtin(interpretStrip, 1))
# - string->int and string->float
# - split a string by a given field
# - get the length of a list
+def interpretListLength(symbol, args, env):
+ ev = evaluate(args[0], env)
+ if not isinstance(ev, List):
+ raise Exception("'first' expects a List")
+ return len(ev.args)
+
+GLOBALS.register("list-length", Builtin(interpretListLength, 1))
+
# - first/rest of list
def interpretFirst(symbol, args, env):
ev = evaluate(args[0], env)