F # - Sintaks Dasar
Anda telah melihat struktur dasar dari program F #, sehingga akan mudah untuk memahami blok bangunan dasar lain dari bahasa pemrograman F #.
Token di F #
Program F # terdiri dari berbagai token. Token bisa berupa kata kunci, pengenal, konstanta, string literal, atau simbol. Kita dapat mengkategorikan token F # menjadi dua jenis -
- Keywords
- Simbol dan Operator
F # Kata kunci
Tabel berikut menunjukkan kata kunci dan deskripsi singkat dari kata kunci. Kami akan membahas penggunaan kata kunci ini di bab-bab selanjutnya.
Kata kunci | Deskripsi |
---|---|
abstract | Menunjukkan metode yang tidak memiliki implementasi dalam tipe yang dideklarasikannya atau yang virtual dan memiliki implementasi default. |
and | Digunakan dalam binding yang saling rekursif, dalam deklarasi properti, dan dengan beberapa batasan pada parameter generik. |
as | Digunakan untuk memberi objek kelas saat ini sebuah nama objek. Juga digunakan untuk memberi nama pada seluruh pola dalam kecocokan pola. |
assert | Digunakan untuk memverifikasi kode selama debugging. |
base | Digunakan sebagai nama objek kelas dasar. |
begin | Dalam sintaks verbose, menunjukkan awal blok kode. |
class | Dalam sintaks verbose, menunjukkan awal definisi kelas. |
default | Menunjukkan implementasi metode abstrak; digunakan bersama dengan deklarasi metode abstrak untuk membuat metode virtual. |
delegate | Digunakan untuk mendeklarasikan delegasi. |
do | Digunakan dalam konstruksi perulangan atau untuk menjalankan kode imperatif. |
done | Dalam sintaks verbose, menunjukkan akhir blok kode dalam ekspresi perulangan. |
downcast | Digunakan untuk mengonversi ke tipe yang lebih rendah dalam rantai warisan. |
downto | Di sebuah for ekspresi, digunakan saat menghitung secara terbalik. |
elif | Digunakan dalam percabangan bersyarat. Bentuk singkat dari else if. |
else | Digunakan dalam percabangan bersyarat. |
end | Dalam definisi tipe dan ekstensi tipe, menunjukkan akhir dari bagian definisi anggota. Dalam sintaks verbose, digunakan untuk menentukan akhir dari blok kode yang dimulai dengan kata kunci begin. |
exception | Digunakan untuk mendeklarasikan tipe pengecualian. |
extern | Menunjukkan bahwa elemen program yang dideklarasikan didefinisikan dalam biner atau perakitan lain. |
false | Digunakan sebagai literal Boolean. |
finally | Digunakan bersama dengan mencoba untuk memperkenalkan blok kode yang dijalankan terlepas dari apakah pengecualian terjadi. |
for | Digunakan dalam konstruksi perulangan. |
fun | Digunakan dalam ekspresi lambda, juga dikenal sebagai fungsi anonim. |
function | Digunakan sebagai alternatif yang lebih pendek untuk kata kunci menyenangkan dan ekspresi pencocokan dalam ekspresi lambda yang memiliki pola yang cocok pada satu argumen. |
global | Digunakan untuk mereferensikan namespace .NET tingkat atas. |
if | Digunakan dalam konstruksi percabangan bersyarat. |
in | Digunakan untuk ekspresi urutan dan, dalam sintaks verbose, untuk memisahkan ekspresi dari binding. |
inherit | Digunakan untuk menentukan kelas dasar atau antarmuka dasar. |
inline | Digunakan untuk menunjukkan fungsi yang harus diintegrasikan langsung ke dalam kode pemanggil. |
interface | Digunakan untuk mendeklarasikan dan mengimplementasikan antarmuka. |
internal | Digunakan untuk menentukan bahwa anggota terlihat di dalam majelis tetapi tidak di luarnya. |
lazy | Digunakan untuk menentukan komputasi yang akan dilakukan hanya ketika hasil diperlukan. |
let | Digunakan untuk mengasosiasikan, atau mengikat, nama ke nilai atau fungsi. |
let! | Digunakan dalam alur kerja asinkron untuk mengikat nama ke hasil komputasi asinkron, atau, dalam ekspresi komputasi lainnya, digunakan untuk mengikat nama ke hasil, yang merupakan tipe komputasi. |
match | Digunakan untuk bercabang dengan membandingkan nilai dengan pola. |
member | Digunakan untuk mendeklarasikan properti atau metode dalam tipe objek. |
module | Digunakan untuk mengaitkan nama dengan sekelompok tipe, nilai, dan fungsi terkait, untuk memisahkannya secara logis dari kode lain. |
mutable | Digunakan untuk mendeklarasikan variabel, yaitu nilai yang dapat diubah. |
namespace | Digunakan untuk mengaitkan nama dengan sekelompok tipe dan modul terkait, untuk memisahkannya secara logis dari kode lain. |
new | Digunakan untuk mendeklarasikan, mendefinisikan, atau memanggil konstruktor yang membuat atau yang dapat membuat objek. Juga digunakan dalam batasan parameter umum untuk menunjukkan bahwa suatu tipe harus memiliki konstruktor tertentu. |
not | Sebenarnya bukan kata kunci. Namun, kombinasi tidak struct digunakan sebagai batasan parameter umum. |
null | Menunjukkan tidak adanya suatu objek. Juga digunakan dalam batasan parameter generik. |
of | Digunakan dalam serikat yang terdiskriminasi untuk menunjukkan jenis kategori nilai, dan dalam deklarasi delegasi dan pengecualian. |
open | Digunakan untuk membuat konten namespace atau modul tersedia tanpa kualifikasi. |
or | Digunakan dengan ketentuan Boolean sebagai Boolean atau operator. Setara dengan ||. Juga digunakan dalam batasan anggota. |
override | Digunakan untuk mengimplementasikan versi metode abstrak atau virtual yang berbeda dari versi dasar. |
private | Membatasi akses ke anggota untuk kode dalam tipe atau modul yang sama. |
public | Mengizinkan akses ke anggota dari luar tipe. |
rec | Digunakan untuk menunjukkan bahwa suatu fungsi bersifat rekursif. |
return | Digunakan untuk menunjukkan nilai yang akan diberikan sebagai hasil dari ekspresi komputasi. |
return! | Digunakan untuk menunjukkan ekspresi komputasi yang, ketika dievaluasi, memberikan hasil dari ekspresi komputasi yang memuat. |
select | Digunakan dalam ekspresi kueri untuk menentukan bidang atau kolom apa yang akan diekstrak. Perhatikan bahwa ini adalah kata kunci kontekstual, yang berarti bahwa ini sebenarnya bukan kata yang dipesan dan hanya bertindak seperti kata kunci dalam konteks yang sesuai. |
static | Digunakan untuk menunjukkan metode atau properti yang bisa dipanggil tanpa contoh tipe, atau anggota nilai yang dibagikan di antara semua contoh tipe. |
struct | Digunakan untuk mendeklarasikan tipe struktur. Juga digunakan dalam batasan parameter generik. Digunakan untuk kompatibilitas OCaml dalam definisi modul. |
then | Digunakan dalam ekspresi bersyarat. Juga digunakan untuk melakukan efek samping setelah konstruksi objek. |
to | Digunakan untuk loop untuk menunjukkan rentang. |
true | Digunakan sebagai literal Boolean. |
try | Digunakan untuk memperkenalkan blok kode yang mungkin menghasilkan pengecualian. Digunakan bersama dengan atau akhirnya. |
type | Digunakan untuk mendeklarasikan kelas, catatan, struktur, serikat yang terdiskriminasi, jenis pencacahan, satuan ukuran, atau singkatan jenis. |
upcast | Digunakan untuk mengonversi ke tipe yang lebih tinggi dalam rantai warisan. |
use | Digunakan alih-alih biarkan untuk nilai yang mengharuskan Buang dipanggil ke sumber daya gratis. |
use! | Digunakan sebagai pengganti biarkan! dalam alur kerja asinkron dan ekspresi komputasi lainnya untuk nilai yang mengharuskan Buang dipanggil ke sumber daya gratis. |
val | Digunakan dalam tanda tangan untuk menunjukkan nilai, atau dalam tipe untuk menyatakan anggota, dalam situasi terbatas. |
void | Menunjukkan tipe void .NET. Digunakan saat beroperasi dengan bahasa .NET lainnya. |
when | Digunakan untuk kondisi Boolean (saat menjaga) pada kecocokan pola dan untuk memperkenalkan klausa batasan untuk parameter tipe generik. |
while | Memperkenalkan konstruksi perulangan. |
with | Digunakan bersama dengan kata kunci pencocokan dalam ekspresi pencocokan pola. Juga digunakan dalam ekspresi objek, ekspresi penyalinan rekaman, dan ekstensi tipe untuk memperkenalkan definisi anggota, dan untuk memperkenalkan penangan pengecualian. |
yield | Digunakan dalam ekspresi urutan untuk menghasilkan nilai urutan. |
yield! | Digunakan dalam ekspresi komputasi untuk menambahkan hasil dari ekspresi komputasi yang diberikan ke kumpulan hasil untuk ekspresi komputasi yang memuatnya. |
Beberapa kata kunci yang dipesan berasal dari bahasa OCaml -
asr | tanah | lor | lsl | lsr | lxor | mod | sig |
Beberapa kata kunci cadangan lainnya disimpan untuk perluasan F # di masa mendatang.
atom | istirahat | diperiksa | komponen | const | paksaan | constructor |
continue | eager | event | external | fixed | functor | include |
method | mixin | object | parallel | process | protected | pure |
sealed | tailcall | trait | virtual | volatile |
Comments in F#
F# provides two types of comments −
- One line comment starts with // symbol.
- Multi line comment starts with (* and ends with *).
A Basic Program and Application Entry Point in F#
Generally, you don’t have any explicit entry point for F# programs. When you compile an F# application, the last file provided to the compiler becomes the entry point and all top level statements in that file are executed from top to bottom.
A well-written program should have a single top-level statement that would call the main loop of the program.
A very minimalistic F# program that would display ‘Hello World’ on the screen −
(* This is a comment *)
(* Sample Hello World program using F# *)
printfn "Hello World!"
When you compile and execute the program, it yields the following output −
Hello World!