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!