Question: I would like this code:

```
[1,2,3].all? {|x| x.is_a?(Integer)}

```

to work using the `&:` method like:

```
[1,2,3].all?(&:is_a?(Integer))

```

but I get this error:

```
syntax error, unexpected '(', expecting ')'

```

I guess it's because I am calling `is_a?(Integer)` as a symbol.

How can I pass Integer to `:is_a?`?

Answer: 
It is impossible. You cannot pass `Integer` (or anything else) to a symbol `:is_a?`. A symbol does not take an argument. No object in Ruby takes an argument (without a method call).

By the way, there is no such thing as `&:`.
You can get close to the notation you want with a lambda:

```
is_an_int = ->(o) { o.is_a?(Integer) }
[1,2,3].all?(&is_an_int)

```

or even closer, a lambda which returns a lambda:

```
is_a = ->(c) { ->(o) { o.is_a?(c) } }
[1,2,3].all?(&is_a[Integer])

```

Possibly more trouble than it is worth in this case but useful techniques none the less.