When:
valUnique _
You partially apply the valUnique method, forcing it to be inserted as a function.
On the other hand:
valUnique(_)
indicates a placeholder for calling the valUnique method, which is usually executed in order to pass an anonymous function to some other high-order function, for example:
emails flatMap { valUnique(_) }
In your case, there is nothing that could be used to execute such a placeholder, although a partial application is still completely valid.
Note that you can also raise a method to a function before passing it as an argument:
emails flatMap { valUnique _ }
This similarity is almost certainly the cause of your confusion, although the two forms are not exactly the same behind the scenes.
source share