Bagikan melalui


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) yang ringan dengan IntelliSense dan pemfaktoran ulang kode. Kunjungi Ionide.io untuk mempelajari lebih lanjut tentang plugin.

Nota

Sebelum memulai, pastikan Anda telah menginstal F# dan plugin Ionide.

Buat 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 Penjelajah Solusi F# 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 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.

Sekarang tambahkan kode berikut ke dalamnya:

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:

Contoh output interaktif F# dengan 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 kirim.

Karena apa yang Anda kirim 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 ini:

toPigLatin "apple";;

Anda akan melihat hasil berikut:

val it: string = "appleyay"

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

Nota

Seperti yang mungkin telah Anda perhatikan, baris di FSI diakhiri dengan ;;. Ini karena FSI memungkinkan Anda memasukkan beberapa baris. ;; di akhir memberi tahu FSI ketika 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 stringlain . Ini dikenal sebagai tanda tangan jenis dari fungsi, bagian mendasar dari F# yang merupakan kunci untuk memahami kode F#. Anda juga akan melihat ini jika mengarahkan mouse ke atas fungsi di Visual Studio Code.

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

  1. Fungsi internal, yang disebut isVowel, untuk menentukan apakah sebuah karakter (c) merupakan vokal dengan memeriksa kecocokannya 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, alur toPigLatin:

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: di 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 blok then atau isi blok else menentukan nilai yang dikembalikan oleh fungsi toPigLatin.

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 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 rakitan 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 module baru yang disebut PigLatin dan salin fungsi toPigLatin yang 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 fungsi main dan di bawah deklarasi open System. Urutan deklarasi penting dalam F#, jadi Anda harus menentukan fungsi sebelum memanggilnya dalam file.

Sekarang, dalam fungsi main, 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 Pengikatan Kunci Visual Studio Code 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 direktori ionide-fsharp 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 GitHub ionide-vscode-fsharp.

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

Langkah berikutnya

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