I learned Scheme, a functional language, first. It was great because of how simple it is, so you get to focus on how to program rather than learning the syntax and oddities of a single language. I more or less took this course but it was In real life. Gregor is a fantastic teacher, and the topics in the course are high level and it covers a lot if stuff. Anyway, if you learn the concepts in one language, picking up more languages is trivial.
I didn't like Haskell's syntax and it's too pure. Everyone knows that to get anything done, you need imperative-ness somewhere, that's where monads come from, but it's ridiculous. I like OCaml better as a statically typed functional programming language that takes the ideas of functional programming but leaves some imperative programming for when you need it.
JavaScript (sorta), OCaml (though like I said, it's statically typed), Scheme and the Lisps (seems like you aren't a fan of parens, I don't mind them (as you might be able to tell)) Unfortunately, that's it. All the combinations of imperative and functional paradigms that exist are leaning on the imperative side, and there are few mostly functional and partially imperative languages, imo. Try OCaml, it's got a good mix of functional and imperative: http://try.ocamlpro.com/
The lambda calculus, iirc, refers to the proof drawn up by Alonzo Church that anything can be computed through pure functions - ie: you can compute anything without mutating state. Do you have to understand that lambda calculus to use functional languages? Hell no. I sure as shit don't understand it, and I can do functional programming. And, I would argue, that few people really understand it, even though tons of people use functional languages. So, you're right, you don't have to know it, but the lambda calculus isn't really referring to the handy lambda function...there's a lot more behind it...that you don't need to understand.