λ-calculus è un sistema formale per la definizione della funzione, l'applicazione della funzione e la ricorsione che costituisce la base matematica della programmazione funzionale.
La domanda di fondo: Cosa fa per noi il calcolo lambda che non possiamo fare con le proprietà della funzione di base e la notazione generalmente apprese dall'algebra della scuola media? Prima di tutto, cosa significa astratto nel contesto del calcolo lambda? La mia comprensione della parola astratto è qualcosa …
Di recente sono diventato estremamente interessato a comprendere e dimostrare aspetti dei linguaggi di programmazione (funzionali). Tuttavia, mentre mi tuffo più a fondo, cose come calcolo λ , la teoria delle categorie e la semantica denotazionale sono un po 'difficili da capire senza una spiegazione adeguata.λλ\lambda Ho letto SICP (un …
Esistono tecniche per risolvere equazioni funzionali per funzioni sconosciute nel calcolo lambda? Supponiamo che io abbia la funzione di identità definita in modo esteso come tale: Ix=xIx=xI x = x (cioè, scrivendo un'equazione per il comportamento previsto di quella funzione) e ora voglio risolverlo per facendo qualche trasformazione algebrica per …
Sto leggendo l'algoritmo di tipizzazione Hindley-Milner mentre scrivo un'implementazione e vedo che, finché ogni variabile è vincolata, otterrai sempre tipi o tipi atomici in cui gli argomenti determineranno il tipo finale, come t1 -> t1o (t1 -> t2) -> (t1 -> t2)dove t1e t2sono variabili di tipo. Non riesco a …
Qualcuno può riferirmi ad articoli peer-reviewed che studiano i vantaggi o gli svantaggi della scrittura di codice in uno stile funzionale? Esistono articoli che discutono delle applicazioni del calcolo Lambda in campi come l'apprendimento automatico, il design delle lingue, ecc.?
Ordine applicabile : valutare sempre in modo completo gli argomenti di una funzione prima di valutare la funzione stessa, ad esempio - (λx.x2(λx.(x+1) 2)))→(λx.x2(2+1))→ (λx.x2(3))→ 32 → 9(λx.x2(λx.(x+1) 2)))→(λx.x2(2+1))→ (λx.x2(3))→ 32 → 9(\lambda x. x^2(\lambda x.(x+1) \ \ 2))) \rightarrow (\lambda x. x^2(2+1))\rightarrow \ (\lambda x. x^2(3)) \rightarrow \ 3^2 …
La maggior parte dei tutorial su Lambda Calculus fornisce esempi in cui numeri positivi e valori booleani possono essere rappresentati da funzioni. Che dire di -1 e io?
Penso di essere piuttosto confuso su ciò che viene chiamato un calcolo e ciò che viene chiamato un linguaggio di programmazione. Tendo a pensare, e potrebbe essere stato detto, che un calcolo è un sistema formale per ragionare sull'equivalenza dei programmi. I programmi hanno una semantica operativa specificata da una …
Un'espressione combinatrice (diciamo nella base SK) può essere pensata come una funzione che mappa le espressioni di calcolo combinatore con le espressioni di calcolo combinatore. Cioè, si può pensare a un'espressione come a una funzione X : L → L , dove L è l'insieme di tutte le espressioni combinatorie …
Vorrei un esempio di quine in puro calcolo lambda . Sono stato piuttosto sorpreso di non poterne trovare uno cercando su Google. La pagina Quine elenca le quines per molte lingue "reali", ma non per il calcolo lambda. Naturalmente, questo significa definire cosa intendo per un quine nel calcolo lambda, …
La programmazione funzionale ha il molto elegante Lambda Calculus e le sue varianti come teoria del backup. Esiste qualcosa del genere per OOP? Che cos'è un'astrazione per il modello orientato agli oggetti?
Ho fatto una domanda simile su cstheory.SE . Secondo questa risposta su Stackoverflow esiste un algoritmo che su un linguaggio di programmazione funzionale puro non pigro ha una complessità , mentre lo stesso algoritmo nella programmazione imperativa è . L'aggiunta di pigrizia al linguaggio FP renderebbe l'algoritmoΩ(nlogn)Ω(nlogn)\Omega(n \log n)Ω(n)Ω(n)\Omega(n)Ω(n)Ω(n)\Omega(n) . …
In primo luogo, vorrei dire che il mio testo qui sotto può contenere errori, quindi sentiti libero di evidenziare eventuali errori nella mia formulazione della domanda. Considera un calcolo lambda non tipizzato con booleani e istruzioni if i cui termini sono dati da questa sintassi: t ::= v | t …
Sto cercando di capire le grammatiche sensibili al contesto. Capisco perché le lingue piacciono { w w ∣ w ∈ A*}{ww∣w∈A∗}\{ww \mid w \in A^*\} {anbncn∣n∈N}{anbncn∣n∈N}\{a^n b^n c^n \mid n\in\mathbb{N}\} non sono liberi dal contesto, ma cosa vorrei sapere se una lingua simile al calcolo lambda non tipizzato è sensibile …
Sto guardando il calcolo delle costruzioni e il suo posto nel cubo Lambda . Se capisco correttamente, ogni asse del cubo può essere considerato come l'aggiunta di un'altra operazione che coinvolge i tipi nel calcolo tipizzato in modo semplice, λ→λ→\lambda_\to . Il primo asse aggiunge operatori da tipo a termine, …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.