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