I've been wondering how to determine if I know functional programming.By know I mean in a Journeyman sense, not a master, but competent enough to do the work.I like languages w/ query/data shaping constructs built in, but is knowing the ins and outs of maps, filters, and aggregates in the form of  Linq, Sql, and Reactive Extensions sufficient to claim that one knows functional programming? Or are additional specific concepts and skills required?Edit: I've been working in OO and languages that identify primarily as OO langs for 15 years. As I'm not in an env that is self-identified as functional, there's little to measure against.Is avoiding immutable state and knowing how to use fold all there is?
How to evaluate how well one knows functional programming
learning;self improvement;functional programming
Dakotah's answer is important and I would like to add a couple of things:Understanding Monads.Understanding Tail call optimization (TCO) and why it does matter  and how the language in question implements it.Understanding persistent data structures and how to implement a one by hand.I'm pretty sure there are a lot of things, please feel free to complete the list.