Sto solo leggendo il calcolo lambda per "conoscerlo". Lo vedo come una forma alternativa di calcolo rispetto alla Macchina di Turing. È un modo interessante di fare le cose con funzioni / riduzioni (parlando rozzamente). Alcune domande continuano a tormentarmi:
- Qual è il punto del calcolo lambda? Perché passare attraverso tutte queste funzioni / riduzioni? Qual è lo scopo?
- Di conseguenza, mi chiedo: cosa ha fatto esattamente il calcolo lambda per far avanzare la teoria del CS? Quali erano i suoi contributi che mi avrebbero permesso di avere un momento "aha" per capire la necessità della sua esistenza?
- Perché il calcolo lambda non è trattato nei testi sulla teoria degli automi? Il percorso comune è passare attraverso vari automi, grammatiche, macchine di Turing e classi di complessità. Il calcolo lambda è incluso solo nel programma per i corsi di stile SICP (forse no?). Ma raramente ho visto che faceva parte del curriculum di base di CS. Ciò implica che non è poi così prezioso? Forse no e forse mi manca qualcosa qui?
Sono consapevole che i linguaggi di programmazione funzionale si basano sul calcolo lambda ma non lo considero un contributo valido, poiché è stato creato molto prima che avessimo i linguaggi di programmazione. Quindi, a che serve conoscere / comprendere il calcolo lambda, quali sono le sue applicazioni / i suoi contributi alla teoria?
Functional Programming
discusso di Haskell e un po 'di Lisp. Il successore di quello fu Principles of Programming Languages
, che usò ML e introdusse il calcolo lambda. Come mostrano alcune risposte, è proprio lì che appartiene il calcolo lambda: in una classe su linguaggi di programmazione, digitazione, ecc.