1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | var isProblem = require( './isProblem' ); var isPred = require( './isPred' ); var isClause = require( './isClause' ); var conform = require( './conform' ); function isValid( expr, x ) { if ( !expr ) { throw new Error( 'Clause is required' ); } else if ( isClause( expr ) ) { return !( isProblem( conform( expr, x ) ) ); } else if ( isPred( expr ) ) { return expr( x ); } else { return true; } } module.exports = isValid; |