Tracce
/
F#
F#
/
Programma
/
Le basi
Le

Le basi in F#

1 esercizio

Informazioni su Le basi

In F#, tutto ciò che ha un tipo e può essere definito è noto come valore. Questo include i valori booleani, gli interi e le liste, ma anche le funzioni. I valori interi sono definiti come una o più cifre (consecutive) e supportano i operatori matematici predefiniti.

Assegnare un valore a un nome si chiama associazione. Le associazioni sono immutabili, il che le rende simili alle costanti di altri linguaggi. Le associazioni si definiscono con la parola chiave let.

Poiché F# è un linguaggio a tipizzazione statica, ogni associazione ha un tipo. Specificare il tipo di un'associazione è facoltativo per la maggior parte delle associazioni, perché l'inferenza di tipo di F# riesce di solito a dedurlo in base al valore.

// Automatically inferred type
let fingers = 10

Anche le funzioni sono normali associazioni, ma con uno o più parametri. Una funzione restituisce automaticamente la sua ultima espressione. L'inferenza di tipo funziona anche per la maggior parte delle funzioni: analizza con quali valori la funzione viene chiamata e quale valore restituisce.

// Automatically inferred types for parameters and return type
let add x y = x + y

Per chiamare una funzione, scrivi il suo nome e passa un argomento per ognuno dei parametri della funzione.

let five = add 2 3

Se il tipo di un'associazione non può essere dedotto, il compilatore segnalerà un errore. Per risolvere, specifica esplicitamente il tipo dell'associazione.

// Explicit type annotation
let fingers: int = 10

// Explicit type annotation (also for parameters)
let add (x: int) (y: int): int = x + y

In F#, le associazioni si possono usare solo dopo essere state definite. Usare un'associazione prima di definirla produce un errore di compilazione.

// Compile error as the add binding has not yet been defined
// let seven = add 3 + 4

let add x y = x + y

Gli spazi bianchi sono significativi: servono a definire lo scope, indentando il codice con spazi rispetto alla riga che definisce l'associazione. Per convenzione, si usano quattro spazi per l'indentazione.

let toes =
    let left = 5
    let right = 5
    left + right

let multiplyPlusTwo x y =
    let product = x * y
    product + 2

// Trying to access the left, right or product bindings
// here would result in a compile error

Le associazioni di F# (comprese le funzioni) sono di solito organizzate in moduli. Un modulo raggruppa funzionalità correlate e si definisce con la parola chiave module. La definizione del modulo deve precedere le sue associazioni:

module Calculator

let pi = 3.14

let add x y = x + y

F# supporta due tipi di commenti. I commenti su una sola riga sono preceduti da //, mentre i commenti multilinea si inseriscono tra (* e *).

Modifica tramite GitHub Il collegamento si apre in una nuova finestra o scheda

Impara Le basi