Aan de slag met F# in Visual Studio voor Mac

Belangrijk

Microsoft heeft de buitengebruikstelling van Visual Studio voor Mac aangekondigd. Visual Studio voor Mac wordt vanaf 31 augustus 2024 niet meer ondersteund. Alternatieven zijn:

Zie Visual Studio voor Mac aankondiging van buitengebruikstelling voor meer informatie.

F# wordt ondersteund in de Visual Studio voor Mac IDE. Zorg ervoor dat u Visual Studio voor Mac geïnstalleerd.

Een consoletoepassing maken

Een van de meest eenvoudige projecten in Visual Studio voor Mac is de consoletoepassing. U kunt dit als volgt doen. Zodra Visual Studio voor Mac is geopend:

  1. Wijs in het menu Bestand de optie Nieuwe oplossing aan.

  2. In het dialoogvenster Nieuw project zijn er twee verschillende sjablonen voor consoletoepassing. Er is een onder Overig -> .NET die is gericht op .NET Framework. De andere sjabloon bevindt zich onder .NET Core -> App die is gericht op .NET Core. Beide sjablonen moeten voor het doel van dit artikel werken.

  3. Wijzig C# indien nodig in F# onder console-app. Kies de knop Volgende om vooruit te gaan.

  4. Geef uw project een naam en kies de gewenste opties voor de app. U ziet dat in het voorbeeldvenster aan de zijkant van het scherm de mapstructuur wordt weergegeven die wordt gemaakt op basis van de geselecteerde opties.

  5. Klik op Create. U ziet nu een F#-project in Solution Explorer.

Uw code schrijven

Laten we beginnen door eerst wat code te schrijven. Zorg ervoor dat het Program.fs bestand is geopend en vervang de inhoud door het volgende:

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

In het vorige codevoorbeeld is een functie square gedefinieerd die een benoemde x invoer gebruikt en deze vermenigvuldigt met zichzelf. Omdat F# typedeductie gebruikt, hoeft het type x niet te worden opgegeven. De F#-compiler begrijpt de typen waar vermenigvuldigen geldig is en wijst een type toe op basis van hoe square wordt aangeroepenx. Als u de muisaanwijzer boven squareplaatst, ziet u het volgende:

val square: x:int -> int

Dit wordt de typehandtekening van de functie genoemd. Dit kan als volgt worden gelezen: 'Vierkant is een functie die een geheel getal met de naam x gebruikt en een geheel getal produceert'. Houd er rekening mee dat de compiler het int type voor nu heeft gegevensquare. Dit komt doordat vermenigvuldigen niet algemeen is voor alle typen, maar in plaats daarvan algemeen is voor een gesloten set typen. De F#-compiler heeft op dit moment gekozen int , maar hiermee wordt de typehandtekening aangepast als u een ander invoertype aanroept square , zoals een float.

Een andere functie, mainwordt gedefinieerd, die is ingericht met het EntryPoint kenmerk om de F#-compiler te vertellen dat de uitvoering van het programma daar moet beginnen. Het volgt dezelfde conventie als andere programmeertalen in C-stijl, waarbij opdrachtregelargumenten aan deze functie kunnen worden doorgegeven en een geheel getalcode wordt geretourneerd (meestal 0).

Het is in deze functie dat we de square functie aanroepen met een argument van 12. De F#-compiler wijst vervolgens het type toe square dat moet worden int -> int (dat wil gezegd, een functie die een int functie neemt en een intproduceert). De aanroep is printfn een opgemaakte afdrukfunctie die gebruikmaakt van een notatietekenreeks, vergelijkbaar met programmeertalen in C-stijl, parameters die overeenkomen met de parameters die zijn opgegeven in de notatietekenreeks en vervolgens het resultaat en een nieuwe regel afdrukken.

Uw code uitvoeren

U kunt de code uitvoeren en resultaten bekijken door te klikken op Uitvoeren in het menu op het hoogste niveau en vervolgens starten zonder foutopsporing. Hiermee wordt het programma uitgevoerd zonder foutopsporing en kunt u de resultaten bekijken.

U ziet nu het volgende weergegeven in het consolevenster dat Visual Studio voor Mac weergegeven:

12 squared is 144!

Gefeliciteerd U hebt uw eerste F#-project gemaakt in Visual Studio voor Mac, een F#-functie geschreven om de resultaten van het aanroepen van die functie af te drukken en het project uit te voeren om enkele resultaten te zien.

F# Interactive gebruiken

Een van de beste functies van F#-hulpprogramma's in Visual Studio voor Mac is het interactieve F#-venster. Hiermee kunt u code verzenden naar een proces waar u die code kunt aanroepen en het resultaat interactief kunt zien.

Als u deze wilt gebruiken, markeert u de square functie die in uw code is gedefinieerd. Klik vervolgens op Bewerken in het menu op het hoogste niveau. Selecteer vervolgens De selectie Verzenden naar F# Interactive. Hiermee wordt de code uitgevoerd in het interactieve F#-venster. U kunt ook met de rechtermuisknop op de selectie klikken en de optie Selectie verzenden naar F# Interactive kiezen. U ziet dat het interactieve F#-venster wordt weergegeven met het volgende:

>

val square: x: int -> int

>

Hier ziet u dezelfde functiehandtekening voor de square functie, die u eerder hebt gezien toen u de muisaanwijzer over de functie aanwijsde. Omdat square dit nu is gedefinieerd in het interactieve F#-proces, kunt u het aanroepen met verschillende waarden:

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

Hiermee wordt de functie uitgevoerd, wordt het resultaat gekoppeld aan een nieuwe naam iten wordt het type en de waarde van it. Houd er rekening mee dat u elke regel met ;;. Zo weet F# Interactive wanneer uw functie-aanroep is voltooid. U kunt ook nieuwe functies definiëren in F# Interactive:

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

val isOdd: x: int -> bool

> isOdd 12;;
val it: bool = false

In het bovenstaande wordt een nieuwe functie gedefinieerd, isOdddie een int en controleert of deze oneven is. U kunt deze functie aanroepen om te zien wat deze retourneert met verschillende invoerwaarden. U kunt functies aanroepen binnen functieoproepen:

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

U kunt ook de operator pipe-forward gebruiken om de waarde in de twee functies te pijplijnen:

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

De operator pipe-forward, en meer, worden behandeld in latere zelfstudies.

Dit is slechts een kijkje in wat u kunt doen met F# Interactive. Zie Interactive Programming met F# voor meer informatie.

Volgende stappen

Als u dat nog niet hebt gedaan, bekijkt u de Tour of F#, waarin enkele van de kernfuncties van F# worden behandeld. U krijgt een overzicht van enkele van de mogelijkheden van F# en biedt voldoende codevoorbeelden die u kunt kopiëren naar Visual Studio voor Mac en kunt uitvoeren. Er zijn ook enkele geweldige externe resources die u kunt gebruiken, die worden weergegeven in de F#-handleiding.

Zie ook