I'll start with some observations.
First, you can't say you fully understand something until you can explain it to others. Second, whenever you explain something fundamental, you can do so as a totally arbitrary property or in terms of some cognitively fundamental concept.
Defining numbers as idempotent to sets is pretty fundamental. Defining addition as merging of sets is also fundamental. This is good. Defining these things in terms of Peano axioms is uselessly verbose and obfuscatory besides. This is bad.
Lambdas are just blocks of code. Lambdas DO things. This is a good, simple, cognitively fundamental explanation. The problem with this explanation is it violates every tenet of functional programming. It says lambdas DO something instead of MEANING something.
Since programmers are all idiots and computer "scientists" are even worse evil idiots, they resort to hocus pocus about ISK and lambda calculus. Read above about uselessly verbose and obfuscatory "explanations" of totally arbitrary properties. Summary: these explanations are bad!
So we come to the conclusion that Haskell programmers and computer "scientists" don't know what lambdas are. This is ... totally unsurprising. We have a world chock full of idiots here. A crapsack world from my perspective. A world where just one more drop of evil would lessen the horror I experience at it.
What Lambdas Are
When you finally realize what they are, it's just beautiful. Lambdas are "the meta-relation 'relation'". Everything is a relation in functional programming, and lambdas are the meta-relation. When you apply lambda R, you state the input and output are related through R.
All to say that today I finally learned what lambdas are from an FP perspective. And it's all so laughably trivial. There is something distinctly wrong with your brains that you couldn't have taught me (or anyone) this trivial thing. This trivial thing that properly belongs on the first page of the very first book read by anyone learning functional programming.
What the fuck is wrong with you all? I mean, there are plenty of idiotically written books on OOP that explain objects are "data structures with member functions" whatever the fuck that means. But at least, people understand 'hey, an OBJECT' from their real world experience.
If you losers wanted to avoid explaining what lambdas are, couldn't you have named them oh I don't know 'meta-function'? None of you losers seem able to grasp things for WHAT THEY ARE. How long did it take to rename CAR and CDR as head and tail or CONS cell to Association?
It's like you stare at a plane and think "shiny metal thing with two giant outflying struts each with underslung fast-spinning rotors attached". Fucking autistics, ought all be shot. Or at least get declared as second-class citizens.
Lambdas Are Meta
Lambdas are unavoidably meta. Their meta-ness stares you in the face when you know what lambdas are, because meta-ness is ALL they are. Which functional programmers don't seem to understand since they are all idiots. Or evil idiots. Bureaucrats writing tomes about type theory to pad out their resumes.
I emphasize this point because LISP has no special syntax for lambdas so it makes it appear that the relation 'meta-relation' is a similar kind of thing to other relations. And this blatantly violates a fundamental rule of UI design which states that you must never confuse the level with the meta-level.
I like Smalltalk's Block O' Code syntax - [:variable1 :variable2 | variable1 + variable2]. It's very ... hefty. It's very special. It's very good. It's exactly what it should be. When you stare at it, there is no doubt in your mind "this thing is not like these other things". And it really isn't.