Organizzazione del codice in funzioni

Elm:
Organizzazione del codice in funzioni

Come fare:

Ecco un pezzo di codice Elm con una semplice funzione per salutare un utente:

module Main exposing (..)

import Html exposing (text)

greetUser : String -> String
greetUser userName =
    "Hello, " ++ userName ++ "!"

main =
    text (greetUser "Casey")

Esegui questo codice e otterrai il risultato: “Hello, Casey!”

Ora, diciamo che vuoi aggiungere più personalizzazione. Estrai più funzionalità!

module Main exposing (..)

import Html exposing (text)

greetUser : String -> String -> String
greetUser greeting userName =
    greeting ++ ", " ++ userName ++ "!"

personalGreeting : String -> String
personalGreeting userName =
    greetUser "Howdy" userName

main =
    text (personalGreeting "Casey")

Ora, quando lo esegui: “Howdy, Casey!” Magia? No, semplicemente funzioni che fanno il loro lavoro.

Approfondimento

Tempo fa, il codice era spesso una lunga sequenza di istruzioni (pensa al codice spaghetti). Era un incubo da mantenere. Poi è arrivata la programmazione strutturata e, con essa, le funzioni. Elm, come i suoi predecessori nella programmazione funzionale, si affida pesantemente sulle funzioni per l’organizzazione.

Puoi annidare funzioni, creando chiusure, o mantenerle pure per semplificare. Elm incoraggia quest’ultima: funzioni pure con input e output ben definiti, che portano a un debugging e testing più facile.

Le funzioni di Elm possono anche essere di ordine superiore, il che significa che possono accettare o restituire altre funzioni. Questo apre un mondo di composabilità. Tuttavia, a differenza di altri linguaggi, Elm non ha il sovraccarico delle funzioni; ogni funzione deve avere un nome unico.

Inoltre, Elm impone un sistema di tipizzazione statico forte che non solo controlla i tipi ma li inferisce anche, riducendo il codice di base ripetitivo.

Quando confrontato con alternative come l’organizzazione del codice procedurale o orientato agli oggetti in altri linguaggi, l’approccio di Elm sottolinea la semplicità e la prevedibilità. Elm non ha oggetti né classi. Si organizza il codice con funzioni e moduli invece che con classi e istanze.

Vedi Anche

Per approfondire, consulta queste risorse: