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.
Cos'è un combinatore? È "una funzione o una definizione senza variabili libere" (come definito in SO)? O che ne dici di questo: secondo John Hughes nel suo famoso articolo su Arrows, "un combinatore è una funzione che costruisce frammenti di programma da frammenti di programma" , il che è vantaggioso …
Di recente ho refactoring due volte del codice per modificare l'ordine dei parametri perché c'era troppo codice in cui gli hack come flipo \x -> foo bar x 42stavano accadendo. Quando progetto una firma di funzione, quali principi mi aiuteranno a utilizzare al meglio il curry?
In Python, mi piacerebbe scrivere una funzione make_cylinder_volume(r)che restituisca un'altra funzione. Quella funzione restituita dovrebbe essere richiamabile con un parametro he restituire il volume di un cilindro con altezza he raggio r. So come restituire valori dalle funzioni in Python, ma come restituisco un'altra funzione ?
Se i linguaggi di programmazione funzionale non possono salvare nessuno stato, come fanno cose semplici come leggere l'input di un utente? Come "memorizzano" l'input (o memorizzano i dati per quella materia?) Ad esempio: come si tradurrebbe questa semplice cosa in C in un linguaggio di programmazione funzionale come Haskell? #include<stdio.h> …
Dato il seguente elenco Scala: val l = List(List("a1", "b1", "c1"), List("a2", "b2", "c2"), List("a3", "b3", "c3")) Come posso avere: List(("a1", "a2", "a3"), ("b1", "b2", "b3"), ("c1", "c2", "c3")) Poiché zip può essere utilizzato solo per combinare due elenchi, penso che dovresti iterare / ridurre in qualche modo l'elenco principale. …
Ho osservato per un po 'la crescente visibilità dei linguaggi e delle funzionalità di programmazione funzionali. Li ho esaminati e non ho visto il motivo dell'appello. Poi, di recente, ho assistito alla presentazione "Basics of Erlang" di Kevin Smith a Codemash . Mi è piaciuta la presentazione e ho imparato …
I linguaggi funzionali portano all'uso della ricorsione per risolvere molti problemi e quindi molti di essi eseguono l'ottimizzazione delle chiamate di coda (TCO). Il TCO fa sì che le chiamate a una funzione da un'altra funzione (o da se stessa, nel qual caso questa funzione è anche nota come Tail …
Questo codice funziona (preso in Javadoc): List<Integer> numbers = Arrays.asList(1, 2, 3, 4); String commaSeparatedNumbers = numbers.stream() .map(i -> i.toString()) .collect(Collectors.joining(", ")); Questo non può essere compilato: int[] numbers = {1, 2, 3, 4}; String commaSeparatedNumbers = Arrays.stream(numbers) .map((Integer i) -> i.toString()) .collect(Collectors.joining(", ")); IDEA mi dice che ho una …
Ho un algoritmo di ricerca del percorso ricorsivo di coda che ho implementato in JavaScript e vorrei sapere se alcuni (tutti?) Browser potrebbero ottenere eccezioni di overflow dello stack.
Vedo qui alcune discussioni interessanti sulla digitazione statica e dinamica. In genere preferisco la digitazione statica, a causa del controllo del tipo di compilazione, del codice meglio documentato, ecc. Tuttavia, sono d'accordo che ingombrano il codice se fatto nel modo in cui lo fa Java, per esempio. Quindi sto per …
Voglio comprimere il seguente elenco di elenchi: >>> zip([[1,2], [3,4], [5,6]]) [[1,3,5], [2,4,6]] Ciò potrebbe essere ottenuto con l'attuale zipimplementazione solo se l'elenco è suddiviso in singoli componenti: >>> zip([1,2], [3,4], [5,6]) (1, 3, 5), (2, 4, 6)] Non riesco a capire come dividere l'elenco e passare i singoli elementi …
Un classico esercizio di programmazione è scrivere un interprete Lisp / Scheme in Lisp / Scheme. La potenza della lingua completa può essere sfruttata per produrre un interprete per un sottoinsieme della lingua. Esiste un esercizio simile per Haskell? Vorrei implementare un sottoinsieme di Haskell utilizzando Haskell come motore. Ovviamente …
Sto cercando di visualizzare alcuni semplici sistemi fisici automatici (cose come pendolo, bracci robotici, ecc.) In Haskell. Spesso questi sistemi possono essere descritti da equazioni come df/dt = c*f(t) + u(t) dove u(t)rappresenta una sorta di "controllo intelligente". Questi sistemi sembrano adattarsi molto bene al paradigma della programmazione reattiva funzionale. …
Ho letto qualche possibile articolo che ho trovato su Internet sul polimorfismo . Ma penso di non essere riuscito a coglierne il significato e la sua importanza. La maggior parte degli articoli non dice perché è importante e come posso ottenere un comportamento polimorfico in OOP (ovviamente in JavaScript). Non …
In quali situazioni dovrei scegliere di utilizzare un linguaggio di programmazione funzionale rispetto a un linguaggio orientato agli oggetti più dettagliato come C ++, C # o Java? Capisco cos'è la programmazione funzionale, quello che non capisco veramente è per quali tipi di problemi è una soluzione perfetta?
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.