Lambda-kalkulo: Malsamoj inter versioj

Neniu ŝanĝo en grandeco ,  antaŭ 4 jaroj
e
sen resumo de redaktoj
e (Roboto: Forigo de 30 interlingvaj ligiloj, kiuj nun disponeblas per Vikidatumoj (d:q242028))
e
[[Dosiero:Lambda lc.svg|thumb|right|180px]]
En [[matematika logiko]] kaj [[komputoscienco]], '''Lambda-kalkulo''', ankaŭ skribata kiel '''λ-kalkulo''', estas [[formalismo|formalisma sistemo]] por esplori difinon de [[funkcio (matematiko)|funkcio]], ĝian aplikon kaj [[rikuro]]n. Ĝin enkondukis [[Alonzo Church]] kaj [[Stephen Cole Kleene]] en [[1930-aj jaroj]] dum esploro de [[bazoj de matematiko]], sed oni trovis ke ĝi estas utila ilo por solvo de problemoj de [[teorio de rikuro]] kaj eĉ povas esti bazo de nova paradigmo de komputila programado, la [[funkcia programado]]<ref>Henk Barendregt, [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.26.7908 ''The Impact of the Lambda Calculus in Logic and Computer Science.''] ''The Bulletin of Symbolic Logic'', Volume '''3''', Number 2, June 1997. </ref> .
 
Oni povas rigardi lambda-kalkulon kiel idealisma, minimumisma programa lingvo. Per ĝi oni povas esprimi iun ajn [[algoritmo]]n, kaj ĝuste tiu fakto faras modelon de funkcia programado tiel grava. Funkciaj programoj estas senstataj kaj zorgas nur pri funkcioj, kiuj akceptas kaj redonas datumojn (inkluzive aliaj funkcioj), sed ne produktas iujn ajn [[flanka efiko (komputado)|flankajn efikojn]] en iu 'stato', kaj sekve ne ŝanĝas enirantan datumon. Modernaj funkciaj programlingvoj, kiuj realigas, plene aŭ parte, lambda-kalkulon estas [[Erlang]], [[Haskell]], [[Lisp]], [[ML (programlingvo)|ML]] kaj [[Scheme]], samkiel kelkaj pli novaj [[Clojure]], [[F Sharp|F#]], [[Nemerle]] kaj [[Scala (programlingvo)|Scala]].
kiel Ω<sub>2</sub> ktp.
 
Lambda-kalkulaj esprimoj povas enhavi ''liberajn variablojn'', t.e. variablojn ne ligitajn al iu <tt>λ</tt>. Ekzemple, variablo <tt>&nbsp;''y''&nbsp;</tt> estas libera en esprimo <tt>&nbsp;(λ ''x''. ''y'')&nbsp;</tt>, ĉar la funkcio ĉiam produktus rezulton <tt>''y''</tt>. Iam tio bezonigas renomadon de formalaj argumentoj. Ekzemple, en la ĉi-suba formulo la litero <tt>''y''</tt> unue estas formala parametro, kaj poste libera variablo:
: <tt>(λ ''x'' ''y''. ''y'' ''x'') (λ ''x''. '''''y''''')</tt>.
Por redukti la esprimon, ni renomos unuan difinilon al ''z'', kaj do redukto ne miksos la nomojn:
87

redaktoj