Print Friendly, PDF & Email

In questa occasione discuteremo quattro modi di pensare al programma Javascript, con approcci o iterativo, ricorsiva, funzionale e paradigmi di programmazione dichiarativa. Ognuno di loro è così diverso di altro che è loro considerato come paradigmi di programmazione separato, anche se questo non vuole dire che un esperto non possa usare quelle con gli altri. È sempre bene sapere modi di pensare e risolvere problemi.

Credo che per la programmazione in Javascript

Definizione del problema

Per mostrare i diversi modi di pensare, consideriamo il seguente problema:

Dato un numero n è un intero positivo, ottenere tutte le potenze di 2 da zero al valore n ed elencarli in un vettore di risultati.

Programmazione Javascript con pensiero iterativo

Questo è l'approccio tradizionale al programma in Javascript. Per l'approccio iterativo dovrà abbattere il Poblem per migliorare passo dopo passo. Le persone che risolvano il problema utilizzando questo paradigma solitamente prima risolvano il problema con un approccio matematico e quindi codificano. Questo tipo di codice è troppo esplicito, ma può forma è facilmente con i diagrammi di flusso. Concetti che possono includere questi programmi di modo implicita potrebbe essere indici, macchine degli Stati, condizionale, ripetitivo, ecc.

  1. Definiamo che dobbiamo ritornare una matrice.
  2. Per ogni numero con valori che vanno da 0 fino a n aggiungere alla disposizione 2 elevato alla potenza di i-esimo
  3. Restituire la matrice con i valori

 

Function powersOfTwo (n) {}
  risultato var = [];
  per (var i = 0; i < = n; i) {}
    result.push (Math.pow(2, i));
  }
  restituire il risultato;
}

Programmazione Javascript con pensiero ricorsivo

ricorsione

Egli approccio ricorsivo è un approccio che si concentra su una mentalità di che a volte è più facile capire un compito ripetitivo con minime variazioni che si scompongono in molti passaggi. Tali programmi tendono ad essere abbastanza compatto ma molto potente se si hanno un sacco di RAM.

Questo approccio richiede un approccio puramente algoritmico, matematica usato tendono ad essere minimalista e molto sono basati sul principio di induzione della matematica discreta. Concetti che potrebbero venire implicite in questo tipo di programmi potrebbe essere, condizione di guasto, ricorsione di due passi, induzione matematica, subroutine, tagli, ecc.

  1. Per il caso più semplice, se n è un valore di zero deve restituire il valore 1 all'interno di un accordo.
  2. In essi gli altri casi, restituire il valore della potenza di 2 a n alla fine di un accordo che ci crede la chiamata a questa procedura eseguita per il valore n eliminando in uno.
Function powersOfTwo (n) {}
  if(n==0) {}
    ritorno[1];
  } else {}
    restituire powersOfTwo(n-1) .concat (Math.pow(2,n));
  }
}

Programmazione Javascript con il pensiero funzionale

Funzionalità Javascript

Questo approccio alla programmazione in Javascript si pone principalmente in EcmasCript 6 (e amo tutti gli hipsters del codice!). L'approccio funzionale richiede un ragionamento rigorosamente matematica e causale di metalidad. È un approccio meno comune poiché è necessaria una grande capacità di astrazione. In genere i concetti funzionali che vengono normalmente implicite in questo tipo di programma potrebbero essere generatori, iteratori, le espressioni lambda, ecc.

  1. Restituire una matrice di dimensione n 1 con valori singoli creati dalla seguente funzione
  2. Ogni elemento con indice i refresará noi un valore di 2 elevato alla potenza
powersOfTwo = n =>. [...Array(n - 1)]map ((e, i) => Math. Pow (2, i));

Programmazione Javascript con il pensiero dichiarativa

Questo è l'approccio di noevo che cerchi nella nuova versione di Ecma Script 7 a programmare in Javascript. Questo approccio richiede di saper esprimere che è quello che vuoi senza dire come volete che sia fatta. Questo approccio contiene la bellezza che è facilmente comprensibile per coloro che lo leggono, ma la sua attuazione può nascondere i dettagli e le ottimizzazioni e l'elaborazione asincrona. Alcuni concetti che potrebbero venire incorporati in questo tipo di programma potrebbe essere backtracking, unificazione, la peresoza, la valutazione del modello di dati, ecc.

  1. Restituire una matrice basata sui seguenti elementi: alta funzione 2 per l'indice di un elemento e una matrice di dimensione n-1.
Function powersOfTwo (n) {}
  return Array.from ({lunghezza: n-1}, (e, i) => Math.pow(2,i));
}

Radio

Do NOT follow this link or you will be banned from the site!