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 :

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 :

  1. Dans le menu Fichier, pointez sur Nouvelle solution.

  2. 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.

  3. Sous l’application console, remplacez C# par F# si nécessaire. Choisissez le bouton Suivant pour continuer.

  4. 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.

  5. 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 à xen 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