Cambia il mio modo di pensare in preparazione per la programmazione funzionale

9

Quando si passa a uno stile funzionale di programmazione dopo essere passati da procedural e OOP, quali sono le cose che devo sapere in anticipo su "questo nuovo modo di pensare"?

Come ti prepari per le immersioni nel mondo di FP e per averle la prima volta?

Quali sono le basi per imparare e impostare per primo?

    
posta JohnDoDo 29.02.2012 - 10:25
fonte

5 risposte

10

Ottieni una copia di "Struttura e interpretazione dei programmi per computer" e lavora attraverso il primo capitolo "Costruire astrazioni con Procedure ". Migliore introduzione alla programmazione funzionale che abbia mai avuto.

MODIFICA: se desideri qualcosa di più comparativo, prova "Sette lingue in sette settimane" (disclaimer: questo libro è ancora nella mia lista TODO).

    
risposta data 29.02.2012 - 10:50
fonte
6

Avrai bisogno di pensiero dichiarativo invece del procedimento procedurale "prima fai questo, poi fai questo, poi fai questo ..." per risolvere i problemi. Comprendere la ricorsione potrebbe essere un buon punto di partenza, in quanto è una sorta di punto debole tra il pensiero procedurale e dichiarativo.

    
risposta data 29.02.2012 - 10:45
fonte
4

Hai messo il carrello davanti al cavallo. Non hai bisogno di prepararti. Scegli un linguaggio che ti sembra interessante, trova documentazione e provalo. Se rimani bloccato, fermati e cerca una risposta. Mentre avanzi, il tuo modo di pensare cambierà.

    
risposta data 01.03.2012 - 18:10
fonte
3

FP è basato sul calcolo lamdba. Devi saperlo. È un buon punto di partenza. Le funzioni sono tutto Non esiste un concetto di stato (anche se puoi simularlo a un livello più alto).

In OOP,

a=1 a=a+1

è accettato. Non così in FP. Non puoi semplicemente assegnare alla variabile un altro valore. Se vuoi imparare FP a lungo termine, impara Haskell. È la versione più pura di FP là fuori ed è anche piuttosto complicata (ho appena iniziato a impararlo), ma vale comunque la pena di impararlo.

Un'introduzione alla programmazione funzionale offre una panoramica di alto livello su cosa sia FP.

Due avvertimenti però

  1. Se vuoi imparare FP per i lavori, allora non ci sono troppe offerte di lavoro. Procedural e OOP regolano ancora il mercato del lavoro. Ma FP può aiutarti molto nell'esplorare nuovi modi di risolvere un problema.
  2. I compilatori FP non sono incredibilmente veloci. Poiché FP è più interessato a risolvere il problema, non puoi aspettarti la velocità C. Ma ancora puoi impartire istruzioni al compilatore (in Haskell) per accelerare il processo di esecuzione. Il compromesso è che hai molto tempo a concentrarti sul programma in mano piuttosto che sui bachi antincendio.
risposta data 29.02.2012 - 10:50
fonte
3

Faccio del mio meglio per ricordare il seguente mantra:

Data in --> Transform Data --> Data out

or

TransformData(Data In)--> Data Out

    
risposta data 29.02.2012 - 15:32
fonte

Leggi altre domande sui tag