Megosztás a következőn keresztül:


Az F# használatának első lépései a Visual Studio Code-ban

Az F#-ot megírhatja a Visual Studio Code programban a Ionide bővítménnyel, így nagyszerű platformfüggetlen, egyszerűsített integrált fejlesztési környezetet (IDE) élvezhet, IntelliSense-támogatással és kódrefaktorálási lehetőségekkel. Látogasson el Ionide.io, és tudjon meg többet a beépülő modulról.

Jegyzet

Mielőtt hozzákezd, győződjön meg arról, hogy mindkettőt, a F#-t, és az Ionide beépülő modult, telepítette.

Az első projekt létrehozása az Ionide használatával

Új F#-projekt létrehozásához nyisson meg egy parancssort, és hozzon létre egy új projektet a .NET parancssori felülettel:

dotnet new console -lang "F#" -o FirstIonideProject

Miután elkészült, módosítsa a könyvtárat a projektre, és nyissa meg a Visual Studio Code-ot:

cd FirstIonideProject
code .

Miután a projekt betöltődött a Visual Studio Code-ban, meg kell jelennie az F# Megoldáskezelő panelnek az ablak bal oldalán. Ez azt jelenti, hogy az Ionide sikeresen betöltötte az imént létrehozott projektet. A szerkesztőben a jelen időpont előtt írhat kódot, de ha ez megtörténik, minden be van töltve.

Az első szkript írása

Miután konfigurálta a Visual Studio Code-ot a .NET Core-szkriptek használatára, lépjen a Visual Studio Code Explorer nézetére, és hozzon létre egy új fájlt. Nevezze el MyFirstScript.fsx.

Most adja hozzá a következő kódot:

let toPigLatin (word: string) =
    let isVowel (c: char) =
        match c with
        | 'a' | 'e' | 'i' | 'o' | 'u'
        | 'A' | 'E' | 'I' | 'O' | 'U' -> true
        |_ -> false
    
    if isVowel word[0] then
        word + "yay"
    else
        word[1..] + string(word[0]) + "ay"

Ez a függvény átalakít egy szót Pig Latinformájává. A következő lépés a kiértékelése az F# Interactive (FSI) használatával.

Jelölje ki a teljes függvényt (11 sor hosszúnak kell lennie). Miután ki van emelve, tartsa lenyomva az Alt billentyűt, és nyomja le Enterbillentyűt. Megjelenik egy terminálablak a képernyő alján, és ennek a következőképpen kell kinéznie:

Az F# interaktív kimenet példája az Ionide-dal

Ez három dolgot tett:

  1. Elindította az FSI-folyamatot.
  2. Elküldte a kiemelt kódot az FSI-folyamatnak.
  3. Az FSI-folyamat kiértékelte az elküldött kódot.

Mivel az elküldött függvény egy függvény volt, ezt a függvényt mostantól FSI-vel is meghívhatja! Az interaktív ablakban írja be a következőket:

toPigLatin "banana";;

A következő eredményt kell látnia:

val it: string = "ananabay"

Most próbáljuk ki a magánhangzót első betűként. Adja meg a következőket:

toPigLatin "apple";;

A következő eredményt kell látnia:

val it: string = "appleyay"

Úgy tűnik, hogy a függvény a várt módon működik. Gratulálunk, most írta meg az első F# függvényt a Visual Studio Code-ban, és kiértékelte az FSI-vel!

Jegyzet

Mint bizonyára észrevette, az FSI sorai ;;végződnek. Ennek az az oka, hogy az FSI lehetővé teszi több sor megadását. A végén található ;; tudatja az FSI-vel, hogy mikor fejeződött be a kód.

A kód ismertetése

Ha nem biztos abban, hogy a kód valójában mit csinál, íme egy lépésről lépésre.

Mint látható, toPigLatin egy függvény, amely egy szót vesz bemenetként, és átalakítja azt a szó Pig-Latin ábrázolására. Ennek szabályai a következők:

Ha egy szó első karaktere magánhangzóval kezdődik, adja hozzá a "yay" szót a szó végéhez. Ha nem magánhangzóval kezdődik, helyezze az első karaktert a szó végére, és adja hozzá az "ay" karaktert.

Előfordulhat, hogy az FSI-ben a következőket észlelte:

val toPigLatin: word: string -> string

Ez azt állítja, hogy a toPigLatin egy függvény, amely egy string bemenetként (az úgynevezett word) vesz fel, és egy másik stringad vissza. Ez ismert, mint afüggvény típusú aláírása, amely az F#-kód megértésének kulcseleme. Ezt akkor is megfigyelheti, ha a Visual Studio Code-ban a függvény fölé viszi az egérmutatót.

A függvény törzsében két különböző rész jelenik meg:

  1. Egy belső függvény, az úgynevezett isVowel, amely meghatározza, hogy egy adott karakter (c) magánhangzó-e, és ellenőrzi, hogy egyezik-e a megadott minták egyikével Mintaegyeztetési:

    let isVowel (c: char) =
        match c with
        | 'a' | 'e' | 'i' | 'o' | 'u'
        | 'A' | 'E' | 'I' | 'O' | 'U' -> true
        |_ -> false
    
  2. Egy if..then..else kifejezés, amely ellenőrzi, hogy az első karakter magánhangzó-e, és a bemeneti karakterekből létrehoz egy visszatérési értéket annak alapján, hogy az első karakter magánhangzó volt-e vagy sem:

    if isVowel word[0] then
        word + "yay"
    else
        word[1..] + string(word[0]) + "ay"
    

A toPigLatin így folytatódik:

Ellenőrizze, hogy a bemeneti szó első karaktere magánhangzó-e. Ha igen, csatolja a "yay" szót a szó végéhez. Ellenkező esetben helyezze át az első karaktert a szó végére, és adja hozzá az "ay" karaktert.

Ezzel kapcsolatban még egy utolsó dolog látható: az F#-ban nincs explicit utasítás a függvényből való visszatérésre. Ennek az az oka, hogy az F# kifejezésalapú, és a függvény törzsében kiértékelt utolsó kifejezés határozza meg a függvény visszatérési értékét. Mivel if..then..else maga a kifejezés, a then blokk törzsének vagy a else blokk törzsének kiértékelése határozza meg a toPigLatin függvény által visszaadott értéket.

A konzolalkalmazás átalakítása Pig Latin-generátorsá

A cikk előző szakaszai az F#-kód írásának gyakori első lépését mutatták be: egy kezdeti függvény írását és interaktív végrehajtását az FSI-vel. Ezt REPL-alapú fejlesztésnek nevezzük, ahol REPL a "Read-Evaluate-Print Loop" (OlvasásiEvaluate-Print Hurok) kifejezést jelenti. Ez egy nagyszerű módja annak, hogy kísérletezzen a funkciókkal, amíg valami nem működik.

A REPL-alapú fejlesztés következő lépése a munkakód F#-implementációs fájlba való áthelyezése. Ezután az F#-fordítóval le lehet fordítani egy végrehajtható összeállítássá.

Először nyissa meg a Program.fs fájlt, amelyet korábban a .NET CLI-vel hozott létre. Észre fogja venni, hogy néhány kód már benne van.

Ezután hozzon létre egy PigLatin nevű új module, és másolja a korábban létrehozott toPigLatin függvényt a következő módon:

module PigLatin =
    let toPigLatin (word: string) =
        let isVowel (c: char) =
            match c with
            | 'a' | 'e' | 'i' | 'o' | 'u'
            | 'A' | 'E' | 'I' | 'O' | 'U' -> true
            |_ -> false
        
        if isVowel word[0] then
            word + "yay"
        else
            word[1..] + string word[0] + "ay"

Ennek a modulnak a main függvény fölött, a open System deklaráció alatt kell lennie. A deklarációk sorrendje az F#-ban számít, ezért a függvényt meg kell határoznia, mielőtt meghívja egy fájlban.

Most a main függvényben hívja meg a Pig Latin generátor függvényt az argumentumokon:

[<EntryPoint>]
let main args =
    for arg in args do
        let newArg = PigLatin.toPigLatin arg
        printfn "%s in Pig Latin is: %s" arg newArg

    0

Most már futtathatja a konzolalkalmazást a parancssorból:

dotnet run apple banana

És látni fogja, hogy ugyanazt az eredményt adja ki, mint a szkriptfájl, de ezúttal futó programként!

Az ionid hibaelhárítása

Az alábbiakban néhány módszert talál arra, hogy elhárítsa azokat a problémákat, amelyekbe esetleg belefuthat:

  1. Az Ionide kódszerkesztési funkcióinak lekéréséhez az F#-fájlokat lemezre és a Visual Studio Code-munkaterületen megnyitott mappába kell menteni.
  2. Ha módosította a rendszert, vagy telepítette az Ionide előfeltételeit a Visual Studio Code megnyitásával, indítsa újra a Visual Studio Code-ot.
  3. Ha a projektkönyvtárakban érvénytelen karakterek vannak, előfordulhat, hogy az Ionide nem működik. Ha ez a helyzet, nevezze át a projektkönyvtárakat.
  4. Ha az Ionide-parancsok egyike sem működik, ellenőrizze a Visual Studio Code billentyűparancsait, hogy véletlenül felülírták-e őket.
  5. Ha az Ionide meghibásodott a számítógépen, és a fentiek egyike sem javította a problémát, távolítsa el a ionide-fsharp könyvtárat a számítógépen, és telepítse újra a beépülő modulcsomagot.
  6. Ha egy projekt betöltése nem sikerült (az F# megoldáskezelő megjeleníti ezt), kattintson a jobb gombbal a projektre, és kattintson a Részletek megtekintése további diagnosztikai információkért.

Az Ionide egy nyílt forráskódú projekt, amelyet az F# közösség tagjai építettek és tartanak karban. Jelentsd a problémákat, és nyugodtan járulj hozzá az ionide-vscode-fsharp GitHub-tárházhoz.

További segítségért is fordulhat az Ionide fejlesztőihez és az F# közösséghez az Ionide Gitter csatornán.

Következő lépések

Ha többet szeretne megtudni az F# nyelvről és a nyelv funkcióiról, tekintse meg Az F#bemutatóját.