Domande taggate «functional-programming»

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.

1
Quali classi di strutture dati possono essere rese persistenti?
Le strutture di dati persistenti sono strutture di dati immutabili. Le operazioni su di essi restituiscono una nuova "copia" della struttura dei dati, ma modificata dall'operazione; la vecchia struttura di dati rimane tuttavia invariata. L'efficienza si ottiene generalmente condividendo alcuni dei dati sottostanti ed evitando la copia completa della struttura …


3
Come rendere un linguaggio omoiconico
Secondo questo articolo la seguente riga di codice Lisp stampa "Hello world" sull'output standard. (format t "hello, world") Lisp, che è un linguaggio omoiconico , può trattare il codice come dati in questo modo: Ora immagina di aver scritto la seguente macro: (defmacro backwards (expr) (reverse expr)) all'indietro è il …






2
Le funzioni di ordine superiore forniscono più potenza alla programmazione funzionale?
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)Ω(nlog⁡n)\Omega(n \log n)Ω(n)Ω(n)\Omega(n)Ω(n)Ω(n)\Omega(n) . …




1
Proprietà come l'uso della memoria di una funzione possono essere espresse in un linguaggio tipicamente dipendente?
Supponiamo che uno voglia ragionare sulle proprietà del codice al di là di cose come la totalità e la purezza funzionale - ci si preoccupa anche del consumo di memoria o della complessità algoritmica di una funzione. Questo può essere fatto attraverso sistemi di tipizzazione dipendenti ed effetti?

2
Implementazione della struttura dei dati immutabile (persistente) simile a matrice con indicizzazione rapida, aggiunta, anteposizione, iterazione
Sto cercando una struttura di dati persistente simile all'array (ma immutabile), che consenta operazioni veloci di indicizzazione, aggiunta, prepend e iterazione (buona località). Clojure fornisce un vettore persistente, ma è solo per un'aggiunta veloce. Scala's Vector ha effettivamente un'appendice e prepend a tempo costante, ma non riesco a capire come …


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.