Itu tergantung pada bagian mana dari pertanyaan Anda yang Anda tekankan. Jika itu khusus milik anonim untuk fungsi anonim, maka memang satu-satunya jawaban adalah bahwa mereka adalah nilai yang tidak terikat . Jika Anda berbicara tentang fungsi secara umum, fungsi anonim mungkin merupakan manifestasi yang paling terlihat dari penggunaan kalkulus lambda dalam pengaturan fungsional, untuk bahasa aplikatif .
Bahkan, dari sudut pandang kalkulus lambda, ekspresi lambda adalah konstruksi sangat sintaksis yang digunakan untuk membuat binding. Ingat notasi yang digunakan dalam lambda calculus:
λf.λx.fx
di mana dan terikat dalam ekspresi batin . Setiap ekspresi lambda di sana mendefinisikan pengikatan, dan dengan demikian bertindak sebagai konteks lokal untuk binding nama.x f xfxfx
Bahasa biasanya menawarkan cara, seperti let
(bahasa seperti ML, skema), atau define
(skema) untuk membuat binding yang dapat digunakan di tingkat atas (atau dalam konstruksi sintaksis yang lebih kompleks daripada fungsi, seperti modul atau objek), tetapi satu-satunya alat yang diperlukan untuk binding adalah lambda di level bawah.
Jika Anda melihat bahasa seperti dialek skema atau bahasa, dana mereka adalah lambda calculus, dan banyak bentuk khusus benar-benar lambda berlapis gula.
Untuk bahasa concatenative , ceritanya sedikit berbeda. Lambdas tidak diperlukan, dan sebenarnya kontra-produktif. Apa gunanya mendefinisikan lambdas anonim, ketika semuanya adalah fungsi ?
Entah bagaimana ada dualitas antara kedua jenis bahasa ini. Yang kemudian difokuskan pada kombinasi fungsi titik bebas dan dengan demikian mencoba untuk mewakili segala sesuatu sebagai fungsi, sedangkan yang sebelumnya bekerja pada kalkulus yang lebih rumit, dan membuat upaya untuk memiliki fungsi sebagai nilai-nilai kelas pertama, seperti nilai-nilai bahasa lainnya. Dalam hal ini, orang dapat melihat lambda sebagai hasil dari upaya itu.
Beberapa petunjuk tentang topik yang diperkenalkan (buruk) dalam jawaban ini:
- artikel Jon Purdy tentang bahasa-bahasa bersambung
- diskusi yang terjadi pada LtU