transcendental-lisp/src/function/builtin/predicate/LISTP.java

26 lines
594 B
Java

package function.builtin.predicate;
import static sexpression.Nil.NIL;
import static sexpression.Symbol.T;
import function.*;
import sexpression.*;
@FunctionNames({ "LISTP" })
public class LISTP extends LispFunction {
private ArgumentValidator argumentValidator;
public LISTP() {
this.argumentValidator = new ArgumentValidator("LISTP");
this.argumentValidator.setExactNumberOfArguments(1);
}
public SExpression call(Cons argumentList) {
argumentValidator.validate(argumentList);
return argumentList.getFirst().isList() ? T : NIL;
}
}