Koodin järjestäminen funktioihin

Elm:
Koodin järjestäminen funktioihin

Miten:

Tässä on palanen Elm-koodia, jossa on yksinkertainen funktio käyttäjän tervehtimiseen:

module Main exposing (..)

import Html exposing (text)

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

main =
    text (greetUser "Casey")

Aja se, ja saat tulosteeksi: “Hello, Casey!”

Entä jos haluat lisätä henkilökohtaisempaa sävyä? Purkkaa lisää toiminnallisuutta!

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")

Nyt, kun ajat sen: “Howdy, Casey!” Taikuutta? Ei, vain funktiot tekevät tehtävänsä.

Syväsukellus

Aikoinaan koodi oli usein yksi pitkä toimintojen jono (ajattele spagettikoodia). Se oli painajainen ylläpitää. Sitten rakennoitu ohjelmointi tuli mukaan, ja sen myötä funktiot. Elm, kuten sen funktionaalisen ohjelmoinnin edeltäjät, nojaa vahvasti funktioihin organisoinnissa.

Voit sisäkkäistää funktioita luoden sulkutiloja (closures) tai pitää ne puhtaina yksinkertaistamisen vuoksi. Elm suosii jälkimmäistä: puhtaita funktioita, joilla on hyvin määritellyt sisääntulot ja ulostulot, mikä johtaa helpompaan virheenjäljitykseen ja testaamiseen.

Elm-funktiot voivat myös olla korkeamman asteen, mikä tarkoittaa, että ne voivat vastaanottaa tai palauttaa muita funktioita. Tämä avaa mahdollisuuksien maailman kokoonpanossa. Toisin kuin jotkut muut kielet, Elm ei kuitenkaan tarjoa funktion ylikuormausta; jokaisella funktiolla täytyy olla yksilöllinen nimi.

Lisäksi Elm asettaa vahvan staattisen tyypitysjärjestelmän, joka ei vain tarkista tyyppejä vaan myös päättelee ne, vähentäen kaavamaista koodia.

Verrattaessa vaihtoehtoja, kuten proseduraalista tai oliopohjaista koodin organisointia muihin kieliin, Elmin lähestymistapa korostaa yksinkertaisuutta ja ennustettavuutta. Elm:ssä ei ole olioita tai luokkia. Koodi organisoidaan funktioiden ja moduulien avulla luokkien ja instanssien sijaan.

Katso Myös

Syventääksesi tietämystäsi, tarkista nämä lähteet: