Question: Is their an equivalent to C#'s Expression API in scala?

For example, I would like to have a lambda like this:

```
(Foo) => Foo.bar

```

and be able to access "bar" in the function it is passed to.

Answer: 
There is an experimental `scala.reflect.Code.lift` which might be of interest, but the short answer is no, Scala does not have access to the AST in any form (expression trees are a subset of C#'s AST).
It's not quite clear to me what you want. If you want a function that returns a getter for a field, you can do that quite easily:

```
class Holder(var s: String) { }
class StringSaver(f: Holder => (() => String), h: Holder) {
  val getter = f(h)
  def lookAtString = getter()
}

val held = new Holder("Hello")
val ss = new StringSaver((h: Holder) => (h.s _) , held)
println(ss.lookAtString)
held.s = "Bye now"
println(ss.lookAtString)

```

The key is to turn the getter h.s into a function via (h.s \_).