Introduzione a F# in Visual Studio per Mac

Importante

Microsoft ha annunciato il ritiro di Visual Studio per Mac. Visual Studio per Mac non sarà più supportato a partire dal 31 agosto 2024. Le alternative includono:

Per altre informazioni, vedere Annuncio del ritiro di Visual Studio per Mac.

F# è supportato nell'IDE Visual Studio per Mac. Assicurarsi di aver installato Visual Studio per Mac.

Creazione di un'applicazione console

Uno dei progetti più di base in Visual Studio per Mac è l'applicazione console. Ecco come eseguire questa operazione. Dopo aver aperto Visual Studio per Mac:

  1. Scegliere Nuova soluzione dal menu File.

  2. Nella finestra di dialogo Nuovo progetto sono disponibili 2 modelli diversi per l'applicazione console. Ne esiste uno in Altro -> .NET destinato a .NET Framework. L'altro modello è in .NET Core -> App destinata a .NET Core. Uno dei due modelli deve essere adatto allo scopo di questo articolo.

  3. In App console modificare C# in F# se necessario. Scegliere il pulsante Avanti per procedere.

  4. Assegnare un nome al progetto e scegliere le opzioni desiderate per l'app. Si noti che il riquadro di anteprima sul lato della schermata mostrerà la struttura di directory che verrà creata in base alle opzioni selezionate.

  5. Fai clic su Crea. Nel Esplora soluzioni dovrebbe essere visualizzato un progetto F#.

Scrittura del codice

Per iniziare, scrivere prima del codice. Assicurarsi che il Program.fs file sia aperto e quindi sostituirne il contenuto con quanto segue:

module HelloSquare

let square x = x * x

[<EntryPoint>]
let main argv =
    printfn "%d squared is: %d!" 12 (square 12)
    0 // Return an integer exit code

Nell'esempio di codice precedente è stata definita una funzione square che accetta un input denominato x e la moltiplica per se stessa. Poiché F# usa l'inferenza del tipo, non è necessario specificare il tipo di x . Il compilatore F# riconosce i tipi in cui la moltiplicazione è valida e assegnerà un tipo a in base alla x modalità square di chiamata. Se si passa il puntatore del mouse su square, verrà visualizzato quanto segue:

val square: x:int -> int

Questo è ciò che è noto come firma del tipo della funzione. Può essere letto in questo modo: "Square è una funzione che accetta un numero intero denominato x e produce un intero". Si noti che il compilatore ha dato square il tipo per il int momento, perché la moltiplicazione non è generica in tutti i tipi, ma è piuttosto generica in un set chiuso di tipi. Il compilatore F# selezionato int a questo punto, ma regola la firma del tipo se si chiama square con un tipo di input diverso, ad esempio .float

Viene definita un'altra funzione main, , decorata con l'attributo EntryPoint per indicare al compilatore F# che l'esecuzione del programma deve essere avviata. Segue la stessa convenzione di altri linguaggi di programmazione in stile C, in cui gli argomenti della riga di comando possono essere passati a questa funzione e viene restituito un codice integer (in 0genere ).

In questa funzione viene chiamata la square funzione con un argomento di 12. Il compilatore F# assegna quindi il tipo di square che deve essere int -> int , ovvero una funzione che accetta e int produce un oggetto int. La chiamata a printfn è una funzione di stampa formattata che utilizza una stringa di formato, simile ai linguaggi di programmazione in stile C, parametri che corrispondono a quelli specificati nella stringa di formato e quindi stampa il risultato e una nuova riga.

Esecuzione del codice

È possibile eseguire il codice e visualizzare i risultati facendo clic su Esegui dal menu di primo livello e quindi su Avvia senza eseguire debug. Verrà eseguito il programma senza eseguire il debug e sarà possibile visualizzare i risultati.

Nella finestra della console verrà ora visualizzata la seguente schermata che Visual Studio per Mac visualizzata:

12 squared is 144!

Complimenti. È stato creato il primo progetto F# in Visual Studio per Mac, è stata scritta una funzione F# che ha stampato i risultati della chiamata a tale funzione ed è stato eseguito il progetto per visualizzare alcuni risultati.

Uso di F# Interactive

Una delle migliori funzionalità degli strumenti F# in Visual Studio per Mac è la finestra interattiva F#. Consente di inviare codice a un processo in cui è possibile chiamare tale codice e visualizzare il risultato in modo interattivo.

Per iniziare a usarlo, evidenziare la square funzione definita nel codice. Fare quindi clic su Modifica dal menu di primo livello. Selezionare quindi Invia selezione a F# Interactive. In questo modo viene eseguito il codice nella finestra interattiva F#. In alternativa, è possibile fare clic con il pulsante destro del mouse sulla selezione e scegliere Invia selezione a F# Interactive. Verrà visualizzata la finestra interattiva F# con quanto segue:

>

val square: x: int -> int

>

Viene visualizzata la stessa firma di funzione per la square funzione, visualizzata in precedenza quando si passa il puntatore del mouse sulla funzione. Poiché square è ora definito nel processo F# Interactive, è possibile chiamarlo con valori diversi:

> square 12;;
val it: int = 144
> square 13;;
val it: int = 169

Questa operazione esegue la funzione , associa il risultato a un nuovo nome ite visualizza il tipo e il valore di it. Si noti che è necessario terminare ogni riga con ;;. Questo è il modo in cui F# Interactive sa al termine della chiamata di funzione. È anche possibile definire nuove funzioni in F# Interactive:

> let isOdd x = x % 2 <> 0;;

val isOdd: x: int -> bool

> isOdd 12;;
val it: bool = false

L'esempio precedente definisce una nuova funzione , isOdd, che accetta e int verifica se è strano! È possibile chiamare questa funzione per vedere cosa restituisce con input diversi. È possibile chiamare le funzioni all'interno delle chiamate di funzione:

> isOdd (square 15);;
val it: bool = true

È anche possibile usare l'operatore pipe-forward per eseguire la pipeline del valore nelle due funzioni:

> 15 |> square |> isOdd;;
val it: bool = true

L'operatore pipe-forward e altro ancora sono trattati nelle esercitazioni successive.

Questo è solo un assaggio delle operazioni che è possibile eseguire con F# Interactive. Per altre informazioni, vedere Programmazione interattiva con F#.

Passaggi successivi

Se non è già stato fatto, vedere il tour di F#, che illustra alcune delle funzionalità di base di F#. Offre una panoramica di alcune delle funzionalità di F# e fornisce esempi di codice ampi che è possibile copiare in Visual Studio per Mac ed eseguire. Sono disponibili anche alcune risorse esterne eccezionali che è possibile usare, presentate nella Guida per F#.

Vedi anche