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.
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 …
Il nostro professore ci ha chiesto di pensare a una funzione in OCaml che ha il tipo 'a -> 'b cioè una funzione di un argomento che potrebbe essere qualsiasi cosa e che può restituire qualsiasi cosa diversa. Ho pensato di usare raiseuna funzione che ignora il suo argomento: let …
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 …
Nell'articolo di Philip Wadler su Teoremi gratuiti afferma nella Sezione 2 su Parametricità che non ci sono ingenui modelli set-teorici di calcolo lambda polimorfico Nell'ingenuo set-modello teorico i tipi sono insiemi e le funzioni sono insiemi di funzioni teoriche che sembrano ragionevoli. Quindi perché dice che non ci sono ingenui …
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 …
Le CPU sono progettate in una certa misura tenendo presente il software che le persone scriveranno per questo, implicitamente o esplicitamente. Mi sembra che se si guarda alla progettazione di architetture di insiemi di istruzioni, sono molto "imperativi", nel senso che ogni istruzione codifica un comando di stile imperativo. Mi …
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.?
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) . …
Ci sono modifiche che potrebbero essere apportate alle CPU per renderle più performanti per i runtime simultanei come Rust? Ad esempio, ci sono modifiche alle implementazioni di previsione delle filiali o alle dimensioni della cache che potrebbero aiutare i runtime simultanei? Ho l'impressione che gli attuali progetti di CPU potrebbero …
Sul wiki di haskell c'è il seguente esempio di uso condizionale della monade IO (vedi qui) . when :: Bool -> IO () -> IO () when condition action world = if condition then action world else ((), world) Si noti che in questo esempio, la definizione di IO aè …
Penso che comprenda come la deforestazione consuma e produce un elenco allo stesso tempo (da una piega e una funzione spiegata - vedi questa buona risposta su CodeReview qui ), ma quando ho confrontato quello con la voce di Wikipedia sulla tecnica ha parlato di "rimozione alberi "da un programma. …
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?
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 …
In un commento all'apprendimento di F #: quali libri che usano altri linguaggi di programmazione possono essere tradotti in F # per apprendere concetti funzionali? Makarius dichiarò: Si noti che l'approccio "CPS" ha arrecato gravi danni alle prestazioni in SML / NJ. Il suo modello di valutazione fisica viola troppe …
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.