La programmazione funzionale è un paradigma di programmazione basato sulla costruzione di astrazioni utilizzando funzioni, evitando effetti collaterali e cambio di stato. La pura programmazione funzionale è thread-safe.
Ho solo erroneamente fatto qualcosa di simile in C ++ e funziona. Perché posso farlo? int main(int argc, char** argv) { struct MyStruct { int somevalue; }; MyStruct s; s.somevalue = 5; } Ora, dopo averlo fatto, mi sono ricordato di aver letto di questo trucco da qualche parte, molto …
Chiuso . Questa domanda è basata sull'opinione . Attualmente non accetta risposte. Vuoi migliorare questa domanda? Aggiorna la domanda in modo che possa essere risolta con fatti e citazioni modificando questo post . Chiuso 2 anni fa . Migliora questa domanda Ho pensato a questa domanda da molto tempo, ma …
Chiuso . Questa domanda richiede dettagli o chiarezza . Attualmente non accetta risposte. Vuoi migliorare questa domanda? Aggiungi dettagli e chiarisci il problema modificando questo post . Chiuso 18 giorni fa . Migliora questa domanda Ho visto così tanto di recente sulla programmazione funzionale e Clojure sembra particolarmente interessante. Anche …
Qual è il modo migliore per terminare anticipatamente un fold? Come esempio semplificato, immagina di voler riassumere i numeri in un Iterable, ma se incontro qualcosa che non mi aspetto (ad esempio un numero dispari) potrei voler terminare. Questa è una prima approssimazione def sumEvenNumbers(nums: Iterable[Int]): Option[Int] = { nums.foldLeft …
Recentemente ho completato un corso universitario che prevedeva Haskell e Agda (un linguaggio di programmazione funzionale tipizzato dipendente) e mi chiedevo se fosse possibile sostituire il lambda calcolo in questi con la logica combinatoria. Con Haskell questo sembra possibile utilizzando i combinatori S e K, rendendolo così privo di punti. …
Sto cercando un algoritmo per generare permutazioni di un set in modo tale da poterne fare un pigro elenco in Clojure. cioè mi piacerebbe iterare su un elenco di permutazioni in cui ogni permutazione non viene calcolata fino a quando non la richiedo e tutte le permutazioni non devono essere …
Mi chiedo quale sia la differenza tra queste operazioni in Scheme. Ho visto domande simili in Stack Overflow ma riguardano Lisp e non c'è un confronto tra tre di questi operatori. Sto scrivendo i diversi tipi di comandi in Scheme e ottengo i seguenti output: (eq? 5 5) -->#t (eq? …
Ho letto molto sulle chiusure e penso di capirle, ma senza offuscare il quadro per me e per gli altri, spero che qualcuno possa spiegare le chiusure nel modo più sintetico e chiaro possibile. Sto cercando una semplice spiegazione che possa aiutarmi a capire dove e perché dovrei usarli.
Le due condizioni che definiscono una funzione puresono le seguenti: Nessun effetto collaterale (ovvero sono consentite solo modifiche all'ambito locale) Restituisce sempre lo stesso output, dato lo stesso input Se la prima condizione è sempre vera, ci sono volte in cui la seconda condizione non è vera? Cioè è davvero …
Qual è la motivazione per l'assegnazione di Scala che valuta a Unità piuttosto che il valore assegnato? Uno schema comune nella programmazione I / O è fare cose come questa: while ((bytesRead = in.read(buffer)) != -1) { ... Ma questo non è possibile in Scala perché ... bytesRead = in.read(buffer) …
Secondo la mia comprensione, le funzioni parziali sono funzioni che otteniamo passando meno parametri a una funzione del previsto. Ad esempio, se questo fosse direttamente valido in Python: >>> def add(x,y): ... return x+y ... >>> new_function = add(1) >>> new_function(2) 3 Nel frammento sopra, new_functionè una funzione parziale. Tuttavia, …
Attualmente sto lavorando a un semplice interprete per un linguaggio di programmazione e ho un tipo di dati come questo: data Expr = Variable String | Number Int | Add [Expr] | Sub Expr Expr E ho molte funzioni che fanno cose semplici come: -- Substitute a value for a …
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.