```
function negate(func) {
  return function(x) {
    return !func(x);
  };
}
var isNotNaN = negate(isNaN);
show(isNotNaN(NaN));

```

This is from a javascript book I'm reading. `func` is used as a function with the argument `x` and the negate sign preceding it. How come?