Il concatenamento delle funzioni è noto come composizione delle funzioni nel mondo funzionale.
Un combinatore tuttavia è una cosa completamente diversa, l'operatore di composizione è semplicemente un combinatore.
Ho scritto un blog nel tentativo di spiegare i combinatori qui potrebbe essere d'aiuto.
In esso cerco di spiegare un combinatore è semplicemente una funzione che segue alcune regole nel caso generale, ma nel caso comune "combinator" è usato per riferirsi a una funzione che astrae un po 'di funzionalità comune che è molto di base in forma.
in calcolo combinatore SKI ci sono 3 combinatori:
Kxy = x
Sxyz = xz (yz)
Ix = x
Questi sono combinatori perché agiscono solo in base ai loro termini e sono generalizzati a non preoccuparsi di quali siano i loro termini.
Questo sembra inutile ma comprendo che posso essere definito in termini di S e K:
SKKx = Kx (Kx) = x che è equivalente a Ix che = x, il vantaggio per i combinatori è che sono completamente generalizzati a qualsiasi termine tu li passi e quindi vivono a un'astrazione di livello superiore rispetto ad altre cose.
Il combinatore di composizione è il combinatore B del sistema combinatore B, C, K, W
Ora per rendere i combinatori utili, tuttavia, devi capire quando vale la pena creare funzioni completamente generalizzate come questa. Gli parser sono l'esempio perfetto e più comune, perché un parser come concetto deve gestire un numero estremamente elevato di possibili input, quindi la capacità di generalizzare la gestione dei loro input è molto utile.