I am reading and practicing Scala, and I found this blog.
Reading the part about Composing Predicates I see this piece of code
def complement[A](predicate: A => Boolean) = (a: A) => !predicate(a)
def any[A](predicates: (A => Boolean)*): A => Boolean =
a => predicates.exists(pred => pred(a))
def none[A](predicates: (A => Boolean)*) = complement(any(predicates: _*))
def every[A](predicates: (A => Boolean)*) = none(predicates.view.map(complement(_)): _*)
I have a python background and would like to understand the meaning of underscore and asterisk, when used alone or together, it's quite strange to make sense of it, specially for none and every definitions.