DSPython  00.03.03 — 25 juin 2012
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Pages
Classes | Fonctions | Variables
Référence de l'espace de nommage DSPython.combinator

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.

Description détaillée

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.


Documentation des fonctions

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().


Documentation des variables

tuple DSPython.combinator.Band
Valeur initiale :
2  Combinator(K,
3  Combinator(O,
4  Combinator(K, KI))))

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
Valeur initiale :
2  Combinator(K,
3  Combinator(O, KK)))

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
Valeur initiale :
2  Combinator(O,
3  Combinator(K, KI)),
4  KK)

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
Valeur initiale :
2  Combinator(O,
3  Combinator(O, KI)),
4  KK)

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
Valeur initiale :
2  Combinator(K, KI))

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
Valeur initiale :
2  Combinator(S,
3  Combinator(K, B),
4  S),
5  KK)

Combinateur C = S[S(KB)S](KK) (constante, à ne pas modifier)

Définition à la ligne 1250 du fichier combinator.py.

tuple DSPython.combinator.iota
Valeur initiale :
2  Combinator(O, KS),
3  KK)

Combinateur iota ι = S[O(KS)](KK) (constante, à ne pas modifier)

Définition à la ligne 1266 du fichier combinator.py.

tuple DSPython.combinator.L
Valeur initiale :
2  B,
3  Combinator(K, M))

Combinateur L = SB(KM) (constante, à ne pas modifier)

Définition à la ligne 1281 du fichier combinator.py.

tuple DSPython.combinator.NBadd
Valeur initiale :
2  Combinator(B,
3  Combinator(S,
4  Combinator(B,
5  S,
6  Combinator(C, NBzero_is))),
7  Combinator(B,
8  Combinator(B,
9  Combinator(B, NBsucc)),
10  Combinator(C,
11  Combinator(B, C,
12  Combinator(B, B)),
13  NBprev))))

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
Valeur initiale :
2  S,
3  Combinator(B, B))

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
Valeur initiale :
2  Combinator(K, B),
3  Combinator(S,
4  Combinator(K, O),
5  K))

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
Valeur initiale :
1 {'K' : K,
2  'S' : S,
3  'x' : Vx,
4  'y' : Vy,
5  'z' : Vz}

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
Valeur initiale :
2  Combinator(K, O),
3  K)

Combinateur T = S(K0)K (constante, à ne pas modifier)

Définition à la ligne 1299 du fichier combinator.py.

tuple DSPython.combinator.U
Valeur initiale :
2  Combinator(K, O),
3  M)

Combinateur U = S(KO)M (constante, à ne pas modifier)

Définition à la ligne 1305 du fichier combinator.py.

tuple DSPython.combinator.V
Valeur initiale :
2  Combinator(K, C),
3  T)

Combinateur V = S(KC)T (constante, à ne pas modifier)

Définition à la ligne 1311 du fichier combinator.py.

tuple DSPython.combinator.W
Valeur initiale :
2  Combinator(K, I))

Combinateur W = SS(KI) (constante, à ne pas modifier)

Définition à la ligne 1317 du fichier combinator.py.

tuple DSPython.combinator.Y
Valeur initiale :
2  Combinator(K, M),
3  Combinator(S,
4  B,
5  Combinator(K, M)))

Combinateur Y = S(KM)[SB(KM)] (constante, à ne pas modifier)

Définition à la ligne 1322 du fichier combinator.py.