relazioni.
Amico: Dato due persone, una relazione di amicizia segue queste leggi generali
- Abbi buona volontà l'uno verso l'altro
- Pensa che l'un l'altro è loro un amico (quindi le leggi devono essere soddisfatte da entrambi i membri in questa relazione)
- Gode di passare del tempo l'un l'altro
Monoid: dati più elementi e una funzione che prende 2 degli elementi e restituisce 1, una relazione monoidale segue queste leggi generali
- C'è uno di quegli elementi (solo uno, chiamato identità) che ha passato alla funzione con qualsiasi altro elemento assicurerà che la funzione restituisca sempre l'elemento altro (0 + 1 = 1, quindi 0 è l'identità quando gli oggetti sono numeri e la funzione è aggiunta)
- La funzione non può operare o restituire elementi non presenti nel set con una relazione monoidale con
- La funzione è associativa e può essere utilizzata con gli oggetti in un modo un po 'indipendente dall'ordine, questo significa a * (b * c) = (a * b) * c che dice che puoi moltiplicare a dal risultato di b * c o c dal risultato di un * b e il risultato sarà lo stesso per prima.
La programmazione funzionale è tutta una questione di generalizzazioni, l'amicizia è una relazione molto generale che può essere vista in numerosi scenari, ma in tutti i vari formati generalmente segue le leggi precedenti.
Riconoscendo le leggi che governano le relazioni tra le cose, puoi creare implementazioni generali che funzionano su qualsiasi formato di cose che ha quel tipo di relazione. Nella programmazione funzionale si tenta di identificare le relazioni tra le cose in modo che possano essere classificate e trattate in generale.
Vuoi una metafora dal mondo reale? Guarda come sono connesse le cose e cerca di identificare le leggi generali (come applicabili a più scenari in cui le cose diverse dalle leggi possono variare). Esiste una relazione tra un impiegato del registro e un acquirente in un negozio, ha alcune leggi generali, un software è stato sviluppato per facilitare gli obiettivi delle persone in quel rapporto generale nel modo dei sistemi POS. Allo stesso modo, quando inizi a vedere queste leggi generali che stabiliscono il modo in cui le cose sono correlate, puoi iniziare a fare affidamento sulle leggi di tali relazioni nella scrittura del tuo software piuttosto che sui particolari specifici di un'istanza di una relazione.