diff options
| author | mryouse | 2022-05-23 00:50:24 +0000 |
|---|---|---|
| committer | mryouse | 2022-05-23 00:50:24 +0000 |
| commit | 8fa2ede632127492bc207ab7fd0dbce9cd19c7c3 (patch) | |
| tree | 30259f7afa35bc6cceb63ebd294a61e2fc8ee5b5 | |
| parent | 93c8a167ed7e8a8288e813bd0bd2bc54f7bb769d (diff) | |
implement list-length
| -rw-r--r-- | interpreter.py | 8 |
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) |
