Bien démarrer avec F# dans Visual Studio pour Mac
Important
Microsoft a annoncé la mise hors service de Visual Studio pour Mac. Visual Studio pour Mac ne sera plus pris en charge à compter du 31 août 2024. Il existe des alternatives :
- Visual Studio Code avec le Kit de développement C# et les extensions associées, telles que .NET MAUI et Unity.
- Visual Studio s’exécutant sur Windows dans une machine virtuelle sur Mac.
- Visual Studio s’exécutant sur Windows dans une machine virtuelle dans le cloud.
Pour plus d’informations, consultez l’annonce de mise hors service de Visual Studio pour Mac.
F# est pris en charge dans l’IDE Visual Studio pour Mac. Vérifiez que vous avez installé Visual Studio pour Mac.
Création d’une application console
L’un des projets les plus simples dans Visual Studio pour Mac est l’application console. Voici comment procéder. Ouvrez Visual Studio pour Mac, puis effectuez les étapes suivantes :
Dans le menu Fichier, pointez sur Nouvelle solution.
Dans la boîte de dialogue Nouveau projet, deux modèles différents sont listés pour l’application console. Le modèle sous Autre -> .NET cible le .NET Framework. L’autre, sous .NET Core -> Application, cible .NET Core. Vous pouvez utiliser les deux modèles pour les besoins de cet article.
Sous l’application console, remplacez C# par F# si nécessaire. Choisissez le bouton Suivant pour continuer.
Donnez un nom à votre projet et choisissez les options souhaitées pour l’application. Notez que le volet d’aperçu situé sur le côté de l’écran présente la structure de répertoires qui sera créée en fonction des options sélectionnées.
Cliquez sur Créer. Vous devez maintenant voir un projet F# dans l’Explorateur de solutions.
Écriture du code
Commençons par écrire du code. Vérifiez que le fichier Program.fs
est ouvert, puis remplacez son contenu par ce qui suit :
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
Dans l’exemple de code précédent, la fonction square
définie prend une entrée nommée x
et la multiplie par elle-même. Étant donné que F# utilise l’inférence de type, le type de x
n’a pas besoin d’être spécifié. Le compilateur F# comprend les types pour lesquels la multiplication est valide et affecte un type à x
en fonction de la façon dont square
est appelé. Si vous pointez sur square
, vous devriez voir ce qui suit :
val square: x:int -> int
C’est ce qu’on appelle la signature de type de la fonction. Elle signifie ceci : « Square est une fonction qui prend un entier nommé x et produit un entier ». Notez que le compilateur affecte à square
le type int
pour l’instant, ce qui s’explique par le fait que la multiplication est générique sur un ensemble fermé de types, et non sur tous les types. Le compilateur F# sélectionne int
à ce stade, mais il ajuste la signature de type si vous appelez square
avec un type d’entrée différent, par exemple un float
.
Une autre fonction, main
, est définie. Celle-ci est décorée avec l’attribut EntryPoint
pour indiquer au compilateur F# que l’exécution du programme doit commencer à cet endroit. Elle suit la même convention que d’autres langages de programmation de style C, où les arguments de ligne de commande peuvent être passés à cette fonction et où un code entier est retourné (en général 0
).
C’est dans cette fonction que nous appelons la fonction square
avec l’argument 12
. Le compilateur F# affecte ensuite à square
le type int -> int
(autrement dit, une fonction qui prend un int
et qui produit un int
). L’appel à printfn
est une fonction d’impression mise en forme. Elle utilise une chaîne de format (similaire à celle des langages de programmation de style C) et des paramètres qui correspondent à ceux spécifiés dans la chaîne de format, puis imprime le résultat et une nouvelle ligne.
Exécution de votre code
Vous pouvez exécuter le code et voir les résultats en cliquant sur Exécuter dans le menu supérieur, puis sur Démarrer sans débogage. Le programme est exécuté sans débogage, ce qui vous permet de voir les résultats.
Vous devriez maintenant voir ce qui suit dans la fenêtre de console affichée par Visual Studio pour Mac :
12 squared is 144!
Félicitations ! Vous avez créé votre premier projet F# dans Visual Studio pour Mac, écrit une fonction F# qui imprime les résultats de l’appel de cette fonction et exécuté le projet pour voir des résultats.
Utilisation de F# Interactive
L’une des meilleures fonctionnalités des outils F# dans Visual Studio pour Mac est la fenêtre F# Interactive. Elle vous permet d’envoyer du code à un processus où vous pouvez appeler ce code et voir le résultat de manière interactive.
Pour commencer à l’utiliser, mettez en surbrillance la fonction square
définie dans votre code. Ensuite, cliquez sur Modifier dans le menu de niveau supérieur. Sélectionnez ensuite Envoyer la sélection à F# Interactive. Le code est exécuté dans la fenêtre F# Interactive. Vous pouvez également cliquer avec le bouton droit sur la sélection et choisir Envoyer la sélection à F# Interactive. La fenêtre F# Interactive doit apparaître avec les éléments suivants :
>
val square: x: int -> int
>
La fonction square
a la même signature de fonction que celle que vous avez vue précédemment quand vous avez pointé sur la fonction. Étant donné que square
est désormais défini dans le processus F# Interactive, vous pouvez l’appeler avec différentes valeurs :
> square 12;;
val it: int = 144
> square 13;;
val it: int = 169
Ceci exécute la fonction, lie le résultat à un nouveau nom it
et affiche le type et la valeur de it
. Notez que vous devez terminer chaque ligne avec ;;
. C’est comme cela que F# Interactive sait quand votre appel de fonction est terminé. Vous pouvez également définir de nouvelles fonctions dans F# Interactive :
> let isOdd x = x % 2 <> 0;;
val isOdd: x: int -> bool
> isOdd 12;;
val it: bool = false
Le code ci-dessus définit une nouvelle fonction, isOdd
, qui prend un int
et vérifie s’il est impair. Vous pouvez appeler cette fonction pour voir ce qu’elle retourne avec différentes entrées. Vous pouvez appeler des fonctions au sein d’appels de fonction :
> isOdd (square 15);;
val it: bool = true
Vous pouvez également utiliser l’opérateur |> pour transmettre la valeur aux deux fonctions :
> 15 |> square |> isOdd;;
val it: bool = true
L’opérateur |>, et bien d’autres, seront traités dans des tutoriels ultérieurs.
Ce que nous venons de voir n’est qu’un aperçu de ce que vous pouvez faire avec F# Interactive. Pour plus d’informations, consultez Programmation interactive avec F#.
Étapes suivantes
Si vous ne l’avez pas déjà fait, consultez la présentation de F# qui couvre quelques-unes des principales fonctionnalités de F#. Elle fournit une vue d’ensemble des fonctionnalités clés de F# et de nombreux exemples de code que vous pouvez copier dans Visual Studio pour Mac et exécuter. D’excellentes ressources externes, présentées dans le guide F#, sont également disponibles.
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de l’année 2024, nous abandonnerons progressivement le mécanisme de retour d’information GitHub Issues pour le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultez :Soumettre et afficher des commentaires pour