ápr
14

F# kezdetek

Címkék: lépések kezdeti f# | Szerző: sync | 8:20 am

 

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.

 

 

A bejegyzés trackback címe:

https://fsharpmagyarul.blog.hu/api/trackback/id/tr131063682

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

supersizeme 2009.05.26. 19:37:09

"készítettem C#-ban egy kis programot... A baj az ezzel, hogy csak 20!–ig használható"

static Func Factorial = x => x == 0 ? 1 : x * Factorial(x - 1);

supersizeme 2009.05.26. 19:38:33

Ojje a lényeget nem jeleníti meg ez az okosság

static Func BigInteger, BigInteger> Factorial = x => x == 0 ? 1 : x * Factorial(x - 1);

Dead-End 2010.10.11. 14:05:57

Pár napja Visual Studio 2010 Professionalt használok, ott figyeltem fel az F#-ra. Gondoltam, rákeresek, és elsőként ez a blog jelent meg a találati listán. Úgyhogy hajrá, jöjjenek a posztok, fogok még itt járni az F# kapcsán. :)
süti beállítások módosítása