Mulai menggunakan F# di Visual Studio Code

Anda dapat menulis F# di Visual Studio Code dengan plugin Ionide untuk mendapatkan pengalaman Lintas Platform, Lingkungan Pengembangan Terpadu (IDE) ringan yang hebat dengan IntelliSense dan refaktor kode. Kunjungi Ionide.io untuk mempelajari lebih lanjut tentang plugin.

Untuk memulai, pastikan Anda memiliki F# dan plugin Ionide yang diinstal dengan benar.

Membuat proyek pertama Anda dengan Ionide

Untuk membuat proyek F# baru, buka baris perintah dan buat proyek baru dengan .NET CLI:

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

Setelah selesai, ubah direktori ke proyek dan buka Visual Studio Code:

cd FirstIonideProject
code .

Setelah proyek dimuat di Visual Studio Code, Anda akan melihat panel F# Penjelajah Solusi di sisi kiri jendela Anda terbuka. Ini berarti Ionide telah berhasil memuat proyek yang baru saja Anda buat. Anda dapat menulis kode di editor sebelum titik waktu ini, tetapi setelah ini terjadi, semuanya telah selesai dimuat.

Tulis skrip U-SQL pertama Anda

Setelah Anda mengonfigurasi Visual Studio Code untuk menggunakan skrip .NET Core, navigasikan ke tampilan Explorer di Visual Studio Code dan buat file baru. Beri nama MyFirstScript.fsx.

Tambahkan kode berikut ke Anda:

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"

Fungsi ini mengonversi kata menjadi bentuk Pig Latin. Langkah selanjutnya adalah mengevaluasinya menggunakan F# Interactive (FSI).

Sorot seluruh fungsi (panjangnya harus 11 baris). Setelah disorot, tahan tombol Alt dan tekan Enter. Anda akan melihat jendela terminal muncul di bagian bawah layar, dan akan terlihat mirip dengan ini:

Example of F# Interactive output with Ionide

Ini melakukan tiga hal:

  1. Ini memulai proses FSI.
  2. Ini mengirim kode yang Anda sorot ke proses FSI.
  3. Proses FSI mengevaluasi kode yang Anda kirimkan.

Karena apa yang Anda kirimkan adalah fungsi, Anda sekarang dapat memanggil fungsi itu dengan FSI! Di jendela interaktif, ketik yang berikut ini:

toPigLatin "banana";;

Anda akan melihat hasil berikut:

val it: string = "ananabay"

Sekarang, mari kita coba dengan vokal sebagai huruf pertama. Masukkan yang berikut:

toPigLatin "apple";;

Anda akan melihat hasil berikut:

val it: string = "appleyay"

Fungsi ini tampaknya berfungsi seperti yang diharapkan. Selamat, Anda baru saja menulis fungsi F# pertama Anda di Visual Studio Code dan mengevaluasinya dengan FSI!

Catatan

Seperti yang mungkin telah Anda perhatikan, baris di FSI dihentikan dengan ;;. Ini karena FSI memungkinkan Anda memasukkan beberapa baris. Di ;; bagian akhir memberi tahu FSI kapan kode selesai.

Menjelaskan kode

Jika Anda tidak yakin tentang apa yang sebenarnya dilakukan kode, berikut adalah langkah demi langkah.

Seperti yang Anda lihat, toPigLatin adalah fungsi yang mengambil kata sebagai inputnya dan mengonversinya menjadi representasi Pig-Latin dari kata itu. Aturan untuk ini adalah sebagai berikut:

Jika karakter pertama dalam kata dimulai dengan vokal, tambahkan "yay" ke akhir kata. Jika tidak dimulai dengan vokal, pindahkan karakter pertama tersebut ke akhir kata dan tambahkan "ay" ke dalamnya.

Anda mungkin telah memperhatikan hal-hal berikut di FSI:

val toPigLatin: word: string -> string

Ini menyatakan bahwa toPigLatin adalah fungsi yang mengambil string sebagai input (disebut word), dan mengembalikan yang lain string. Ini dikenal sebagai tanda tangan jenis fungsi, bagian mendasar dari F# yang merupakan kunci untuk memahami kode F#. Anda juga akan melihat ini jika Anda mengarahkan kursor ke atas fungsi di Visual Studio Code.

Dalam isi fungsi, Anda akan melihat dua bagian yang berbeda:

  1. Fungsi dalam, yang disebut isVowel, yang menentukan apakah karakter tertentu (c) adalah vokal dengan memeriksa apakah cocok dengan salah satu pola yang disediakan melalui Pencocokan Pola:

    let isVowel (c: char) =
        match c with
        | 'a' | 'e' | 'i' | 'o' | 'u'
        | 'A' | 'E' | 'I' | 'O' | 'U' -> true
        |_ -> false
    
  2. Ekspresi if..then..else yang memeriksa apakah karakter pertama adalah vokal, dan membuat nilai pengembalian dari karakter input berdasarkan apakah karakter pertama adalah vokal atau tidak:

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

Dengan demikian, alurnya toPigLatin adalah:

Periksa apakah karakter pertama kata input adalah vokal. Jika ya, lampirkan "yay" ke akhir kata. Jika tidak, pindahkan karakter pertama tersebut ke akhir kata dan tambahkan "ay" ke dalamnya.

Ada satu hal terakhir yang perlu diperhatikan tentang hal ini: dalam F#, tidak ada instruksi eksplisit untuk kembali dari fungsi. Ini karena F# berbasis ekspresi, dan ekspresi terakhir yang dievaluasi dalam isi fungsi menentukan nilai pengembalian fungsi tersebut. Karena if..then..else itu sendiri adalah ekspresi, evaluasi isi then blok atau isi else blok menentukan nilai yang dikembalikan oleh toPigLatin fungsi.

Mengubah aplikasi konsol menjadi generator Pig Latin

Bagian sebelumnya dalam artikel ini menunjukkan langkah pertama umum dalam menulis kode F#: menulis fungsi awal dan menjalankannya secara interaktif dengan FSI. Ini dikenal sebagai pengembangan berbasis REPL, di mana REPL adalah singkatan dari "Read-Evaluate-Print Loop". Ini adalah cara yang bagus untuk bereksperimen dengan fungsionalitas sampai Anda memiliki sesuatu yang berfungsi.

Langkah selanjutnya dalam pengembangan berbasis REPL adalah memindahkan kode kerja ke dalam file implementasi F#. Kemudian dapat dikompilasi oleh pengkompilasi F# ke dalam assembly yang dapat dieksekusi.

Untuk memulai, buka file Program.fs yang Anda buat sebelumnya dengan .NET CLI. Anda akan melihat bahwa beberapa kode sudah ada di sana.

Selanjutnya, buat baru yang module disebut PigLatin dan salin fungsi yang toPigLatin Anda buat sebelumnya ke dalamnya seperti:

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"

Modul ini harus berada di atas main fungsi dan di bawah open System deklarasi. Urutan deklarasi penting dalam F#, jadi Anda harus menentukan fungsi sebelum memanggilnya dalam file.

Sekarang, dalam main fungsi, panggil fungsi generator Pig Latin Anda pada argumen:

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

    0

Sekarang Anda dapat menjalankan aplikasi konsol dari baris perintah:

dotnet run apple banana

Dan Anda akan melihat bahwa itu menghasilkan hasil yang sama dengan file skrip Anda, tetapi kali ini sebagai program yang sedang berjalan!

Pemecahan masalah Ionide

Berikut adalah beberapa cara untuk memecahkan masalah tertentu yang mungkin Anda alami:

  1. Untuk mendapatkan fitur pengeditan kode Ionide, file F# Anda perlu disimpan ke disk dan di dalam folder yang terbuka di ruang kerja Visual Studio Code.
  2. Jika Anda telah membuat perubahan pada sistem atau menginstal prasyarat Ionide dengan Visual Studio Code terbuka, mulai ulang Visual Studio Code.
  3. Jika Anda memiliki karakter yang tidak valid di direktori proyek, Ionide mungkin tidak berfungsi. Ganti nama direktori proyek Anda jika demikian.
  4. Jika tidak ada perintah Ionide yang berfungsi, periksa Visual Studio Code Pengikatan Kunci Anda untuk melihat apakah Anda menimpanya secara tidak sengaja.
  5. Jika Ionide rusak pada komputer Anda dan tidak ada hal di atas yang memperbaiki masalah Anda, coba hapus ionide-fsharp direktori di komputer Anda dan instal ulang rangkaian plugin.
  6. Jika proyek gagal dimuat (Penjelajah Solusi F# akan menampilkan ini), klik kanan pada proyek tersebut dan klik Lihat detail untuk mendapatkan info diagnostik lainnya.

Ionide adalah proyek sumber terbuka yang dibangun dan dikelola oleh anggota komunitas F#. Laporkan masalah dan jangan ragu untuk berkontribusi di repositori ionide-vscode-fsharp GitHub.

Anda juga dapat meminta bantuan lebih lanjut dari pengembang Ionide dan komunitas F# di saluran Ionide Gitter.

Langkah berikutnya

Untuk mempelajari lebih lanjut tentang F# dan fitur bahasa, lihat Tour of F#.