Domanda

in lambda calcolo (λ x. Λ λ s y.. Λ z. X s (y s z)) viene utilizzato per l'aggiunta di due numeri della Chiesa come possiamo spiegare questo, c'è qualche buona risorsa lambda calcolo per la programmazione funzionale? il vostro aiuto è molto apprezzato

È stato utile?

Soluzione

In realtà f1 λ. λ f2. λ s. λ z. (F1 s (f2 s z)) calcola inoltre perché è in effetti sostituendo (f2 s z), il numero rappresentato da f2, verso l'interno (f1 s z) "zero".

Esempio: Prendiamo due per f2, s s z in forma estesa. f1 è uno: s z. Sostituire che lo scorso z da f2 e si ottiene s s s z, la forma estesa per tre.

Questo sarebbe più facile con una lavagna e-agitando la mano, mi spiace.

Altri suggerimenti

In lambda calcolo, è il codice un tipo di dati in termini di operazioni da esso induce. Ad esempio, un valore booleano è solo una funzione scelta che prende in ingresso due valori ae b eo restituisce una o b:

                      true = \a,b.a   false = \a,b.b

Qual è l'uso di un numero naturale? Il suo scopo principale è quello di computazionale fornire un limite di iterazione. Così, abbiamo il codice di un numero naturale come operatore che prende in ingresso una funzione f, un valore x, e l'applicazione iterare di f sopra x per n volte:

                        n = \f,x.f(f(....(f x)...))

con n occorrenze di f.

Ora, se si vuole iterare n + m volte la funzione f partendo da x è necessario avviare l'iterazione n volte, vale a dire (n f x), e poi iterare per m i tempi supplementari, a partire dal risultato precedente, vale a dire

                                m f (n f x)

Allo stesso modo, se si vuole iterare n * m volte è necessario iterare m volte l'operazione di iterazione n volte f (come in due cicli annidati), che è

                                 m (n f) x  

La codifica precedente di tipi di dati è più formalmente spiegato in termini dei costruttori e separatori corrispondenti (il cosiddetto Bòhm-Berarducci encoding).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top