nl_tokens: Returns a result map of running the schema s tests / transformers against an input object .
pl_tokens: function mapRun ( input , schema , discrepencies ) { var result = { } ; _ . forOwn ( schema , function ( value , key ) { if ( _ . isPlainObject ( value ) ) { // Recursive. Others are bases. result [ key ] = mapRun ( input [ key ] , value , discrepencies ) ; } else if ( _ . isArray ( value ) ) { try { result [ key ] = value . reduce ( function ( prev , curr , index ) { if ( ! _ . isFunction ( curr ) ) throw 'Index [' + index + ']: Not a function.' ; return curr ( prev ) ; } , input [ key ] ) ; } catch ( e ) { discrepencies . push ( '' + key + ': ' + e ) ; } } else if ( _ . isFunction ( <mask> ) ) { try { result [ key ] = value ( input [ key ] ) ; // Result of running that function against the input. } catch ( e ) { discrepencies . push ( '' + key + ': ' + e ) ; } } else { throw new TypeError ( 'Schemas should be a nested object of functions or function arrays.' ) ; } } ) ; return result ; }