La programmazione funzionale è un paradigma di programmazione che utilizza principalmente le funzioni come mezzo per costruire astrazioni ed esprimere calcoli che comprendono un programma per computer.
Sto lavorando su un linguaggio basato sull'espressione della genealogia ML, quindi ha naturalmente bisogno dell'inferenza del tipo> :) Ora sto cercando di estendere una soluzione basata sui vincoli al problema di inferire i tipi, basata su una semplice implementazione in EOPL (Friedman e Wand), ma questi si adattano elegantemente a …
Mi è stato segnalato che il costo dell'inferenza di tipo in un linguaggio funzionale come OCaml può essere molto elevato. L'affermazione è che esiste una sequenza di espressioni tale che per ogni espressione la lunghezza del tipo corrispondente è esponenziale sulla lunghezza dell'espressione. Ho ideato la sequenza qui sotto. La …
Voglio fornire prove per parti di un programma Haskell che sto scrivendo come parte della mia tesi. Finora, tuttavia, non sono riuscito a trovare un buon lavoro di riferimento. Il libro introduttivo di Graham Hutton Programmazione in Haskell ( Google Libri ), che ho letto durante l'apprendimento di Haskell, tocca …
Non conosco la terminologia corretta per porre questa domanda, quindi la descriverò con molte parole, abbiate pazienza. Sfondo , solo così siamo sulla stessa pagina: i programmi spesso contengono cache - un compromesso tempo / memoria. L'errore di un programmatore comune è dimenticare di aggiornare un valore memorizzato nella cache …
I tipi di sé sono un'estensione del Calculus of Constructions [1] che consente al linguaggio di esprimere tipi di dati algebrici codificati attraverso la codifica Scott. La codifica Scott offre la possibilità di adattarsi al modello O(1), che è uno dei principali motivatori per l'inclusione delle definizioni induttive nel CC. …
Cosa sono le funzioni anonime (lambda)? Qual è la definizione formale di una funzione anonima in un linguaggio di programmazione funzionale? In parole semplici, quando sto programmando in schema / lisp direi che una funzione anonima (lambda) è una funzione che non è legata a un identificatore. È tutto ciò …
La defunzionalizzazione è una trasformazione descritta per la prima volta nel 1972 da John C. Reynolds per eliminare le funzioni di ordine superiore. Esistono trasformazioni alternative (più efficienti?) Per eliminare le funzioni di ordine superiore?
Vorrei confrontare le prestazioni delle strutture di dati codificate in funzione (Church's / Scott's) e codificate in modo classico (assemblatore / C). Ma prima di farlo devo sapere quanto è efficiente / può essere la rappresentazione della funzione in memoria. Naturalmente la funzione può essere parzialmente applicata (ovvero chiusura). Sono …
Voglio sapere fino a che punto un sistema di tipi in un linguaggio di programmazione può essere utile. Ad esempio, so che in un linguaggio di programmazione tipicamente dipendente, possiamo creare una Vectorclasse che incorpora la dimensione del vettore nella firma del tipo. È come un esempio di fatto. Possiamo …
Quindi esiste un algoritmo per convertire i termini del calcolo lambda in logica combinatoria usando i combinatori SK. Produce cose che esplodono in dimensioni. Vorrei sapere di più su questa esplosione di dimensioni. Tuttavia, non riesco a pensare a un algoritmo migliore. Ho sentito parlare di linguaggi funzionali praticamente compilati …
Anche se lavoro come programmatore nella mia vita quotidiana e utilizzo tutti i linguaggi di tendenza (Python, Java, C, ecc.), Non ho ancora una visione chiara di cosa sia la programmazione funzionale. Da quello che ho letto, una proprietà dei linguaggi funzionali è che le strutture di dati sono immutabili …
Diciamo che gli elenchi sono definiti come List a = Nil | Cons a (List a) Quindi, in Haskell è List xil punto di correzione più grande o meno? Sto chiedendo perché lfp dovrebbe escludere elenchi infiniti (ma è possibile costruirli in Haskell), mentre gfp dovrebbe escludere quelli finiti.
StackOverflow mi ha indicato qui, quindi la domanda potrebbe essere un po 'nei termini di un laico. Wikipedia definisce funzioni pure come Nella programmazione al computer, una funzione può essere descritta come una funzione pura se entrambe queste affermazioni sulla funzione contengono: La funzione valuta sempre lo stesso valore di …
Nella teoria dei tipi podcast ep. 3 , Dan Licata afferma che il fatto che per ogni input, insertionsort e mergesort fornisca lo stesso risultato non implica che il risultato sarebbe uguale se usato come funzioni di ordine superiore come argomenti per una terza funzione, cioè map insertionsortnon deve essere …
Come definito da Wikipedia, (La corrispondenza Curry-Howard) è una generalizzazione di un'analogia sintattica tra sistemi di logica formale e calcoli computazionali che fu scoperta per la prima volta dal matematico americano Haskell Curry e dal logico William Alvin Howard. Ad esso è associato il cubo λ, che è una rappresentazione …
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.