Question: I'd like to define a function `f()` as follows (just an example) :

```
val f: (vararg strings: String) -> Unit = { for (str in it) println(str) }

```

so that I could invoke it with `f("a","b","c")`. For the above definition of `f()` I get the compilation error, pointing at the `vararg` modifier (Kotlin v. 1.3.60 ) :

```
Unsupported [modifier on parameter in function type]

```

How can I define a lambda that accepts a `vararg` parameter ?

Answer: 
If you need a function pointer (to be passed as an argument). It can be achieved with a workaround (hack):

```
fun f(vararg strings: String): Unit = strings.forEach(::println)

val fWrapper:(Array<String>)-> Unit = {arr:Array<String>->f(*arr)}

```
Since vararg is not possible to be defined in functions signatures I'll go for this:

```
val f: (ArrayList<String>) -> Unit = { for (str in it) println(str) }

```