Question: I am trying to create a view with multiple UIButtons where any tap would be registered as a tap on the nearest UIButton. I have been unsuccessful so far, and I am hoping you guys/gals have some knowledge on standard approaches/methods used to do what I am trying to do.

Answer: 
```
scala> case class Foo(i: Int, c: Char)
defined class Foo

scala> val f = Foo.apply _
f: (Int, Char) => Foo = <function2>

scala> (l1, l2).zipped map f
res12: List[Foo] = List(Foo(1,a), Foo(2,b), Foo(3,c))

```

More info, since someone didn't get what I meant, here's what this map looks like:

<https://github.com/scala/scala/blob/2.11.x/src/library/scala/runtime/Tuple2Zipped.scala#L35>
A slightly cleaner version using pattern matching would help with #2:

```
val objectList = (l1 zip l2).map { case (a, b) => new MyObject(a,b) }

```

A more extreme version would be to use a factory method on a companion class that turned the tuple into an instance of MyClass. 

```
object MyClass {
  def make(t: (Int, Char)) = new MyClass(t._1, t._2)
}

val objs = (l1 zip l2).map(MyClass.make)

```

You could even get fancier by making the companion object a function to further reduce the clutter:

```
object MyClass extends (Tuple2[Int, Char] => MyClass) {
  def apply(t: (Int, Char)) = new MyClass(t._1, t._2)
}

val objs = (l1 zip l2).map(MyClass)

```