Bonjour à tous.
N'ayant jamais pratiqué le moindre langage fonctionnel qui soit et y voyant en général le Mal, j'ai tenté quand même le pas avec F#, ce qui me permettait de rester dans un environnement connu. Hé bien je dois dire que je tiens encore après plus d'une semaine d'immersion complète !
J'y vois deux raisons : tout d'abord c'est nouveau, complètement nouveau pour moi, une bonne raison de m'y plonger avec intérêt; et ensuite les défis à relever sont intéressants (c'est totalement incompréhensible... ), donc j'y reste, question de fierté personnelle ! Nan mé...
Reste que les modules me jouent des tours et que j'aurais besoin des lumières d'un savant!
Je suis en Windows XP SP3 avec Visual Studio 2010 Shell, F# 2.0.0.0 et Dotnet 4.0.30319, ce qui semble assez moderne.
Problème 1:
(Extrait d'un message pour la dernière livraison en 1.9.quelque-chose)
D'après mes essais (dans la configuration citée ci-dessus), il faut aussi le module dans le main, faute de quoi on a:Problème 2:Erreur 1 Files in libraries or multiple-file applications must begin with a namespace or module declaration, e.g. 'namespace SomeNamespace.SubNamespace' or 'module SomeNamespace.SomeModule'
Voici mes 2 fichiers, Program.fs et Truc.fs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 module Program open System open Truc let a = Truc.N //Test avec le préfixe Truc let b = F 100 //Test sans le préfixe Truc let c = Truc.Chouette.A //Test avec let d = Chouette.A //Test sans printfn "a = %d, b = %d" a b Console.ReadLine() |> ignoreTout ce que j'affiche en rouge est rejeté par Visual Studio avec le message "Erreur 1 The namespace or module 'Truc' is not defined" ou identique. A noter qu'il trouve bien System...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 module Truc let N = 1234 let F x = x + 1 module Chouette = let A = 123
Donc, je résume: dès que je veux utiliser plus d'un fichier.fs, il faut mettre des modules, et pourtant il ne les voit pas. Kessifokejfai ?
Merci
Partager