Most, hogy a fiammal készülgetünk a matek érettségijére, a faktoriális számítására készítettem C#-ban egy kis programot. Nincs is ezzel különösebb gond. Rekurzív függvényhívás, csak ügyelni kell arra, hogy legyen kilépési pont:
public static long Factorial(long number)
{
if (number ==0)
return 1;
else
return number * Factorial(number - 1);
}
A baj az ezzel, hogy csak 20!–ig használható. Kis guglizás során valahol ráakadtam az F#-ra. Ezen a nyelven n! számítására:
let rec factorial n =
if n=0 then 1 else n * factorial(n - 1);;
(Persze a factorialt nem kell megvalósítani, mert már implementálták az Microsoft.Fsharp.Math.BigInt namespacen)
Ki kellene próbálni. Újabb keresgélés. Kiderült, hogy az F# a MS műhelyeiben készülget. Az F# .NET keretrendszerbe integrált nyelv és a funkcionális programozási paradigmát valósítja meg. Itt letölthető a compiler. Oké, de kinek van kedve konzolon próbálgatni. Én VS 2008 Expresst használok. Elég ez itthonra. Sajnos az F# nem integrálható vele, csak a VS 2008-cal hajlandó együttműködni. Szerencsére erre is találtam megoldást :Microsoft Visual Studio 2008 Shell (integrated mode) Redistributable Package. Ingyenes és adja a szokásos studiós kényelmi funkciókat.
Először a VS 2008 Shell-tkell telepíteni és utána az F# compilert. Én először fordítva telepítettem. Le kellett szedni az F# telepítést, majd a shell után újratelepíteni.
Kétféle projektet lehet létrehozni:

és 3 féle fájlt lehet egy projekthez hozzáadni:
F# interaktív módan
#light
let rec factorial n =
if n=0 then 1 else n * factorial(n - 1);;
factorial 10
Ajánlom még elolvasni:
Chris Smith blogja.