rédaction partie lambda-calcul (peut-être) terminée
This commit is contained in:
parent
30267226b3
commit
bcbe5d3293
14
README.md
14
README.md
@ -1,4 +1,16 @@
|
|||||||
# Quelques essais autour du 𝜆-calcul
|
# Quelques essais autour du 𝜆-calcul
|
||||||
|
|
||||||
|
Fichiers :
|
||||||
|
|
||||||
|
* `lambda_calcul.py` module Python permettant de représenter des 𝜆-termes et de les réduire.
|
||||||
|
* `lambda_calcul.ipynb` calepin Jupyter décrivant et illustrant ce qu'est le 𝜆-calcul.
|
||||||
|
* `lambda_calcul.md` version Markdown du calepin précédent.
|
||||||
|
|
||||||
|
|
||||||
|
# Prérequis
|
||||||
|
|
||||||
|
* Tout ce travail a été réalisé avec Python 3.7.3 et Jupyter 6.1.
|
||||||
|
* L'utilisation du module `lambda_calcul.py` nécessite le module [`sly`](https://github.com/dabeaz/sly).
|
||||||
|
|
||||||
# TODO
|
# TODO
|
||||||
Rédiger le texte.
|
Rédiger le texte de la deuxième partie du calepin.
|
||||||
|
3660
lambda_calcul.ipynb
3660
lambda_calcul.ipynb
File diff suppressed because it is too large
Load Diff
886
lambda_calcul.md
886
lambda_calcul.md
File diff suppressed because it is too large
Load Diff
@ -224,7 +224,7 @@ class Lambda_terme():
|
|||||||
|
|
||||||
def __eq__(self, terme):
|
def __eq__(self, terme):
|
||||||
if not isinstance(terme, Lambda_terme):
|
if not isinstance(terme, Lambda_terme):
|
||||||
raise Lambda_termeError('Comparaison inpossible impossible')
|
raise Lambda_termeError('Comparaison impossible')
|
||||||
if self.est_variable():
|
if self.est_variable():
|
||||||
return terme.est_variable() and self._content[1] == terme._content[1]
|
return terme.est_variable() and self._content[1] == terme._content[1]
|
||||||
elif self.est_application():
|
elif self.est_application():
|
||||||
@ -350,8 +350,8 @@ class Lambda_terme():
|
|||||||
while not forme_normale_atteinte and etape < nb_etapes_max:
|
while not forme_normale_atteinte and etape < nb_etapes_max:
|
||||||
etape += 1
|
etape += 1
|
||||||
terme_reduit, est_reduit = lambda_terme.reduit()
|
terme_reduit, est_reduit = lambda_terme.reduit()
|
||||||
if verbose: print('{:3d}: ---> {:s}'.format(etape, str(lambda_terme), str(terme_reduit)))
|
if verbose: print('{:3d}: ---> {:s}'.format(etape, str(terme_reduit)))
|
||||||
forme_normale_atteinte = not est_reduit
|
forme_normale_atteinte = terme_reduit.est_forme_normale()
|
||||||
lambda_terme = terme_reduit
|
lambda_terme = terme_reduit
|
||||||
if forme_normale_atteinte:
|
if forme_normale_atteinte:
|
||||||
if verbose: print('Forme normale calculée : {:s}'.format(str(terme_reduit)))
|
if verbose: print('Forme normale calculée : {:s}'.format(str(terme_reduit)))
|
||||||
|
Loading…
Reference in New Issue
Block a user