From 8fa2ede632127492bc207ab7fd0dbce9cd19c7c3 Mon Sep 17 00:00:00 2001 From: mryouse Date: Mon, 23 May 2022 00:50:24 +0000 Subject: implement list-length --- interpreter.py | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'interpreter.py') 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) -- cgit v1.2.3