def apply(self, args, call_env): if len(args) != 2: raise SyntaxError(". must be of form: . container field") container = args[0].evaluate(call_env) return types.to_lisp_type(getattr(container, str(args[1].evaluate(call_env))))
def apply(self, args, call_env): if len(args) == 0: raise SyntaxError("! must be of form: ! callable args") fn = args[0].evaluate(call_env) return types.to_lisp_type(fn(*[e.evaluate(call_env).pytype() for e in args[1:]]))