Qual è il valore di un'espressione let

2

Da quanto ho capito, ogni codice in f # è un'espressione, incluso let binding. Diciamo che abbiamo il seguente codice:

let a = 5
printfn "%d" a

Ho letto che questo sarebbe stato visto dal compilatore come

let a = 5 in
(
     printfn "%d" a
)

Quindi il valore di tutto questo sarebbe il valore dell'espressione interna, che è il valore di printf . D'altra parte, in f # interactive:

> let a = 5;;
val a : int = 5

Che indica chiaramente che il valore di let expression è il valore associato all'identificatore.

D: Qualcuno può spiegare qual è il valore di un'espressione let? Può essere diverso nel codice compilato che in F # interattivo?

    
posta Grzegorz Sławecki 22.08.2014 - 09:48
fonte

1 risposta

3

Ci sono diversi contesti in F # dove può apparire un let , incluso:

  • Il contesto delle definizioni modulo , dove definizioni valore utilizzano la parola chiave let . Le definizioni non restituiscono o hanno un valore nello stesso senso delle espressioni.

  • Il contesto di espressioni , dove espressioni di definizione del valore utilizzano la parola chiave let . Per semplificare, le espressioni di definizione del valore sono fondamentalmente della forma let p = i in b , dove p è un modello e i e b sono espressioni, e il valore di tali espressioni è il valore dell'espressione b .

Il contesto in F # interattivo è come il contesto delle definizioni dei moduli. Nel caso delle definizioni di valore, l'interfaccia interattiva F # fornisce utili informazioni sul valore definito.

Si noti che i contesti di cui sopra non sono gli unici contesti in cui compare let . Ad esempio, definizioni del tipo di classe possono contenere definizioni di valori utilizzando la parola chiave let . Consulta la specifica del linguaggio F # per ulteriori dettagli.

    
risposta data 22.08.2014 - 11:55
fonte

Leggi altre domande sui tag