Combinateurs. Plus de détails...
Classes | |
class | Atom |
"Atome" pour les combinateurs Plus de détails... | |
class | Combinator |
Combinateur (Sequence non vide dont le premier élément est un Atom et les suivants des Combinator) Plus de détails... |
Fonctions | |
def | func_B |
Fonction pour la dynamique du combinateur atomique B : Bxyz... | |
def | func_C |
Fonction pour la dynamique du combinateur atomique C : Cxyz... | |
def | func_const |
Fonction pour une "dynamique constante" : a... | |
def | func_I |
Fonction pour la dynamique du combinateur atomique I : Ix... | |
def | func_K |
Fonction pour la dynamique du combinateur atomique K : Kxy... | |
def | func_S |
Fonction pour la dynamique du combinateur atomique S : Sxyz... | |
def | func_W |
Fonction pour la dynamique du combinateur atomique W : Wxy... | |
def | func_x |
Fonction pour le remplacement de la "méta-variable" x. | |
def | func_y |
Fonction pour le remplacement de la "méta-variable" y. | |
def | func_z |
Fonction pour le remplacement de la "méta-variable" z. |
Variables | |
string | VERSION = 'combinator --- 2010 April 12' |
Date du dernier changement pour ce module. | |
int | BARENDREGT = 1 |
Constante pour utiliser les opérations sur les nombres naturels de Barendregt. | |
int | CHURCH = 2 |
Constante pour utiliser les opérations sur les nombres naturels de Church. | |
tuple | _ATOM_CONST = Atom('c') |
Constante d'un atome de "dynamique constante", utilisée en interne. | |
tuple | Atom_K = Atom('K', func_K) |
Atome K (constante, à ne pas modifier) | |
tuple | Atom_S = Atom('S', func_S) |
Atome S (constante, à ne pas modifier) | |
tuple | Atom_Vx = Atom('x', func_x) |
Atome utilisé par la "méta-variable" x (constante, à ne pas modifier) | |
tuple | Atom_Vy = Atom('y', func_y) |
Atome utilisé par la "méta-variable" y (constante, à ne pas modifier) | |
tuple | Atom_Vz = Atom('z', func_z) |
Atome utilisé par la "méta-variable" z (constante, à ne pas modifier) | |
tuple | _COMB_CONST = Combinator(_ATOM_CONST) |
Constante d'un combinateur de "dynamique constante", utilisée en interne. | |
tuple | K = Combinator(Atom_K) |
Combinateur K = combinateur vrai (constante, à ne pas modifier) | |
tuple | S = Combinator(Atom_S) |
Combinateur S (constante, à ne pas modifier) | |
tuple | KK = Combinator(K, K) |
Combinateur KK (constante, à ne pas modifier) | |
tuple | KS = Combinator(K, S) |
Combinateur KS (constante, à ne pas modifier) | |
tuple | SS = Combinator(S, S) |
Combinateur SS (constante, à ne pas modifier) | |
tuple | SK = Combinator(S, K) |
Combinateur SK (constante, à ne pas modifier) | |
tuple | B = Combinator(S, KS, K) |
Combinateur B = S(KS)K = combinateur produit pour les nombres naturels de Church (constante, à ne pas modifier) | |
tuple | C |
Combinateur C = S[S(KB)S](KK) (constante, à ne pas modifier) | |
tuple | I = Combinator(SK, K) |
Combinateur I = SKK = combinateur nombre naturel 0 de Barendregt (constante, à ne pas modifier) | |
tuple | O = Combinator(S, I) |
Combinateur O = SI (constante, à ne pas modifier) | |
tuple | iota |
Combinateur iota ι = S[O(KS)](KK) (constante, à ne pas modifier) | |
tuple | KI = Combinator(K, I) |
Combinateur KI = combinateur faux = combinateur nombre naturel 0 de Church (constante, à ne pas modifier) | |
tuple | M = Combinator(O, I) |
Combinateur M = OI (constante, à ne pas modifier) | |
tuple | L |
Combinateur L = SB(KM) (constante, à ne pas modifier) | |
tuple | Omega = Combinator(M, M) |
Combinateur Omega Ω = MM (constante, à ne pas modifier) | |
tuple | R |
Combinateur R = S(KB){S(KO)K} (constante, à ne pas modifier) | |
tuple | T |
Combinateur T = S(K0)K (constante, à ne pas modifier) | |
tuple | U |
Combinateur U = S(KO)M (constante, à ne pas modifier) | |
tuple | V |
Combinateur V = S(KC)T (constante, à ne pas modifier) | |
tuple | W |
Combinateur W = SS(KI) (constante, à ne pas modifier) | |
tuple | Y |
Combinateur Y = S(KM)[SB(KM)] (constante, à ne pas modifier) | |
tuple | Bnot |
Combinateur not (négation booléenne) = S{O[K(KI)]}(KK) (constante, à ne pas modifier) | |
tuple | Bnot_my |
Autre combinateur not (négation booléenne) = S{O[O(KI)]}(KK) (constante, à ne pas modifier) | |
tuple | Band |
Combinateur and (et booléen, conjonction) = S(K{O[K(KI)]}) (constante, à ne pas modifier) | |
tuple | Bor = Combinator(O, KK) |
Combinateur or (ou booléen, disjonction) = O(KK) (constante, à ne pas modifier) | |
tuple | Bimp |
Combinateur implication booléenne = S{K[O(KK)]} (constante, à ne pas modifier) | |
tuple | Bnotrec |
Combinateur négation de la réciproque booléenne = O[K(KI)] (constante, à ne pas modifier) | |
tuple | NBzero_is = Combinator(T, K) |
Combinateur est égal à 0 ? pour nombres naturels de Barendregt = TK (constante, à ne pas modifier) | |
tuple | NBsucc = Combinator(V, KI) |
Combinateur successeur pour nombres naturels de Barendregt = V(KI) (constante, à ne pas modifier) | |
tuple | NBprev = Combinator(T, KI) |
Combinateur prédécesseur pour nombres naturels de Barendregt = T(KI) (constante, à ne pas modifier) | |
tuple | NBadd |
Combinateur prédécesseur pour nombres naturels de Barendregt = ??? (constante, à ne pas modifier) | |
tuple | NCsucc = Combinator(S, B) |
Combinateur successeur pour les nombres naturels de Church = SB (constante, à ne pas modifier) | |
tuple | NCadd |
Combinateur addition pour les nombres naturels de Church = BS(BB) (constante, à ne pas modifier) | |
tuple | Vx = Combinator(Atom_Vx) |
Combinateur atomiques utilisé comme "méta-variable" x. | |
tuple | Vy = Combinator(Atom_Vy) |
Combinateur atomiques utilisé comme "méta-variable" y. | |
tuple | Vz = Combinator(Atom_Vz) |
Combinateur atomiques utilisé comme "méta-variable" z. | |
natural_sys = CHURCH | |
Spécifie le type de nombres naturels gérés par les opérations arithmétiques de la classe == BARENDREGT ou CHURCH. | |
dictionary | str_combs |
Dictionnaire des strings reconnues comme combinateurs par str_to, associées à leur Combinator. | |
var_x = None | |
None ou Combinator qui remplacera la "méta-variable" Vx. | |
var_y = None | |
None ou Combinator qui remplacera la "méta-variable" Vy. | |
var_z = None | |
None ou Combinator qui remplacera la "méta-variable" Vz. |
Combinateurs.
Cf.
http://www.opimedia.be/Bruno_Marchal/index.htm#Theo
et
http://fr.wikipedia.org/wiki/Logique_combinatoire pour une présentation de la logique combinatoire.
def DSPython.combinator.func_B | ( | a, | |
s, | |||
nb | |||
) |
Fonction pour la dynamique du combinateur atomique B : Bxyz...
–> x(yz)...
Fonction pour la dynamique du combinateur atomique B : Bxyz... --> x(yz)... Pour s = [x_1, x_2, x_3, x_4, ..., x_k] si len(s) => 3 et ((nb == None) ou (nb > 0)) alors renvoie (Combinator(x_1, x_3, Combinator(x_2, x_3), x_4, ... , x_k) 1) sinon renvoie (Combinator(a, x_1, x_2, x_3, x_4, ..., x_k), 0) (Seul a est évalué, une seule fois, et pas les x_i) Pre: a: Atom s: Iterable de Combinator nb: None ou naturel Result: (Combinator, naturel) O() = ...
Définition à la ligne 39 du fichier combinator.py.
Références DSPython.natural_is().
def DSPython.combinator.func_C | ( | a, | |
s, | |||
nb | |||
) |
Fonction pour la dynamique du combinateur atomique C : Cxyz...
–> xzy...
Fonction pour la dynamique du combinateur atomique C : Cxyz... --> xzy... Pour s = [x_1, x_2, x_3, x_4, ..., x_k] si len(s) => 3 et ((nb == None) ou (nb > 0)) alors renvoie (Combinator(x_1, x_3, Combinator(x_2, x_3), x_4, ... , x_k) 1) sinon renvoie (Combinator(a, x_1, x_2, x_3, x_4, ..., x_k), 0) (Seul a est évalué, une seule fois, et pas les x_i) Pre: a: Atom s: Iterable de Combinator nb: None ou naturel Result: (Combinator, naturel) O() = ...
Définition à la ligne 72 du fichier combinator.py.
Références DSPython.natural_is().
def DSPython.combinator.func_const | ( | a, | |
s, | |||
nb | |||
) |
Fonction pour une "dynamique constante" : a...
–> a...
Fonction pour une "dynamique constante" : a... --> a... Pour s = [x_1, x_2, x_3, x_4, ..., x_k] renvoie (Combinator(a, x_1, x_2, x_3, x_4, ..., x_k), 0) quelque soit nb (Seul a est évalué, une seule fois, et pas les x_i) Pre: a: Atom s: Iterable de Combinator nb: None ou naturel Result: (Combinator, naturel) O() = 1
Définition à la ligne 103 du fichier combinator.py.
Références DSPython.natural_is().
def DSPython.combinator.func_I | ( | a, | |
s, | |||
nb | |||
) |
Fonction pour la dynamique du combinateur atomique I : Ix...
–> x...
Fonction pour la dynamique du combinateur atomique I : Ix... --> x... Pour s = [x_1, x_2, x_3, x_4, ..., x_k] si len(s) => 1 et ((nb == None) ou (nb > 0)) alors renvoie (Combinator(x_1, x_2, x_3, x_4, ..., x_k), 1) sinon renvoie (Combinator(a, x_1, x_2, x_3, x_4, ... ,x_k), 0) (Seul a est évalué, une seule fois, et pas les x_i) Pre: a: Atom s: Iterable de Combinator nb: None ou naturel Result: (Combinator, naturel) O() = ...
Définition à la ligne 129 du fichier combinator.py.
Références DSPython.natural_is().
def DSPython.combinator.func_K | ( | a, | |
s, | |||
nb | |||
) |
Fonction pour la dynamique du combinateur atomique K : Kxy...
–> x...
Fonction pour la dynamique du combinateur atomique K : Kxy... --> x... Pour s = [x_1, x_2, x_3, x_4, ..., x_k] si len(s) => 2 et ((nb == None) ou (nb > 0)) alors renvoie (Combinator(x_1, x_3, x_4, ..., x_k), 1) sinon renvoie (Combinator(a, x_1, x_2, x_3, x_4, ... ,x_k), 0) (Seul a est évalué, une seule fois, et pas les x_i) Pre: a: Atom s: Iterable de Combinator nb: None ou naturel Result: (Combinator, naturel) O() = ...
Définition à la ligne 160 du fichier combinator.py.
Références DSPython.natural_is().
def DSPython.combinator.func_S | ( | a, | |
s, | |||
nb | |||
) |
Fonction pour la dynamique du combinateur atomique S : Sxyz...
–> xz(yz)...
Fonction pour la dynamique du combinateur atomique S : Sxyz... --> xz(yz)... Pour s = [x_1, x_2, x_3, x_4, ..., x_k] si len(s) => 3 et ((nb == None) ou (nb > 0)) alors renvoie (Combinator(x_1, x_3, Combinator(x_2, x_3), x_4, ... , x_k) 1) sinon renvoie (Combinator(a, x_1, x_2, x_3, x_4, ..., x_k), 0) (Seul a est évalué, une seule fois, et pas les x_i) Pre: a: Atom s: Iterable de Combinator nb: None ou naturel Result: (Combinator, naturel) O() = ...
Définition à la ligne 191 du fichier combinator.py.
Références DSPython.natural_is().
def DSPython.combinator.func_W | ( | a, | |
s, | |||
nb | |||
) |
Fonction pour la dynamique du combinateur atomique W : Wxy...
–> xyy...
Fonction pour la dynamique du combinateur atomique W : Wxy... --> xyy... Pour s = [x_1, x_2, x_3, x_4, ..., x_k] si len(s) => 2 et ((nb == None) ou (nb > 0)) alors renvoie (Combinator(x_1, x_2, x_2, x_3, x_4, ..., x_k), 1) sinon renvoie (Combinator(a, x_1, x_2, x_3, x_4, ... ,x_k), 0) (Seul a est évalué, une seule fois, et pas les x_i) Pre: a: Atom s: Iterable de Combinator nb: None ou naturel Result: (Combinator, naturel) O() = ...
Définition à la ligne 225 du fichier combinator.py.
Références DSPython.natural_is().
def DSPython.combinator.func_x | ( | a, | |
s, | |||
nb | |||
) |
Fonction pour le remplacement de la "méta-variable" x.
Fonction pour le remplacement de la "méta-variable" x Pour s = [x_1, x_2, x_3, x_4, ..., x_k] si var_x != None et ((nb == None) ou (nb > 0)) alors renvoie (Combinator(var_x, x_1, x_2, x_3, x_4, ..., x_k), 1) sinon renvoie (Combinator(a, x_1, x_2, x_3, x_4, ... ,x_k), 0) (Seul a est évalué, une seule fois, et pas les x_i) Pre: a: Atom s: Iterable de Combinator nb: None ou naturel Result: (Combinator, naturel) O() = 1
Définition à la ligne 256 du fichier combinator.py.
Références DSPython.natural_is().
def DSPython.combinator.func_y | ( | a, | |
s, | |||
nb | |||
) |
Fonction pour le remplacement de la "méta-variable" y.
Fonction pour le remplacement de la "méta-variable" y Pour s = [x_1, x_2, x_3, x_4, ..., x_k] si var_y != None et ((nb == None) ou (nb > 0)) alors renvoie (Combinator(var_y, x_1, x_2, x_3, x_4, ..., x_k), 1) sinon renvoie (Combinator(a, x_1, x_2, x_3, x_4, ... ,x_k), 0) (Seul a est évalué, une seule fois, et pas les x_i) Pre: a: Atom s: Iterable de Combinator nb: None ou naturel Result: (Combinator, naturel) O() = 1
Définition à la ligne 287 du fichier combinator.py.
Références DSPython.natural_is().
def DSPython.combinator.func_z | ( | a, | |
s, | |||
nb | |||
) |
Fonction pour le remplacement de la "méta-variable" z.
Fonction pour le remplacement de la "méta-variable" z Pour s = [x_1, x_2, x_3, x_4, ..., x_k] si var_z != None et ((nb == None) ou (nb > 0)) alors renvoie (Combinator(var_z, x_1, x_2, x_3, x_4, ..., x_k), 1) sinon renvoie (Combinator(a, x_1, x_2, x_3, x_4, ... ,x_k), 0) (Seul a est évalué, une seule fois, et pas les x_i) Pre: a: Atom s: Iterable de Combinator nb: None ou naturel Result: (Combinator, naturel) O() = 1
Définition à la ligne 318 du fichier combinator.py.
Références DSPython.natural_is().
tuple DSPython.combinator.Band |
Combinateur and (et booléen, conjonction) = S(K{O[K(KI)]}) (constante, à ne pas modifier)
Définition à la ligne 1345 du fichier combinator.py.
tuple DSPython.combinator.Bimp |
Combinateur implication booléenne = S{K[O(KK)]} (constante, à ne pas modifier)
Définition à la ligne 1354 du fichier combinator.py.
tuple DSPython.combinator.Bnot |
Combinateur not (négation booléenne) = S{O[K(KI)]}(KK) (constante, à ne pas modifier)
Définition à la ligne 1333 du fichier combinator.py.
tuple DSPython.combinator.Bnot_my |
Autre combinateur not (négation booléenne) = S{O[O(KI)]}(KK) (constante, à ne pas modifier)
Définition à la ligne 1339 du fichier combinator.py.
tuple DSPython.combinator.Bnotrec |
Combinateur négation de la réciproque booléenne = O[K(KI)] (constante, à ne pas modifier)
Définition à la ligne 1359 du fichier combinator.py.
tuple DSPython.combinator.C |
Combinateur C = S[S(KB)S](KK) (constante, à ne pas modifier)
Définition à la ligne 1250 du fichier combinator.py.
tuple DSPython.combinator.iota |
Combinateur iota ι = S[O(KS)](KK) (constante, à ne pas modifier)
Définition à la ligne 1266 du fichier combinator.py.
tuple DSPython.combinator.L |
Combinateur L = SB(KM) (constante, à ne pas modifier)
Définition à la ligne 1281 du fichier combinator.py.
tuple DSPython.combinator.NBadd |
Combinateur prédécesseur pour nombres naturels de Barendregt = ??? (constante, à ne pas modifier)
Définition à la ligne 1380 du fichier combinator.py.
tuple DSPython.combinator.NCadd |
Combinateur addition pour les nombres naturels de Church = BS(BB) (constante, à ne pas modifier)
Définition à la ligne 1403 du fichier combinator.py.
tuple DSPython.combinator.R |
Combinateur R = S(KB){S(KO)K} (constante, à ne pas modifier)
Définition à la ligne 1291 du fichier combinator.py.
dictionary DSPython.combinator.str_combs |
Dictionnaire des strings reconnues comme combinateurs par str_to, associées à leur Combinator.
Définition à la ligne 1428 du fichier combinator.py.
tuple DSPython.combinator.T |
Combinateur T = S(K0)K (constante, à ne pas modifier)
Définition à la ligne 1299 du fichier combinator.py.
tuple DSPython.combinator.U |
Combinateur U = S(KO)M (constante, à ne pas modifier)
Définition à la ligne 1305 du fichier combinator.py.
tuple DSPython.combinator.V |
Combinateur V = S(KC)T (constante, à ne pas modifier)
Définition à la ligne 1311 du fichier combinator.py.
tuple DSPython.combinator.W |
Combinateur W = SS(KI) (constante, à ne pas modifier)
Définition à la ligne 1317 du fichier combinator.py.
tuple DSPython.combinator.Y |
Combinateur Y = S(KM)[SB(KM)] (constante, à ne pas modifier)
Définition à la ligne 1322 du fichier combinator.py.