F # - Temel Sözdizimi
Bir F # programının temel yapısını gördünüz, bu nedenle F # programlama dilinin diğer temel yapı taşlarını anlamak kolay olacaktır.
F # cinsinden jetonlar
Bir F # programı çeşitli belirteçlerden oluşur. Bir belirteç, bir anahtar sözcük, bir tanımlayıcı, bir sabit, bir dize değişmezi veya bir sembol olabilir. F # jetonlarını iki türe ayırabiliriz -
- Keywords
- Sembol ve Operatörler
F # Anahtar Kelimeler
Aşağıdaki tablo anahtar kelimeleri ve anahtar kelimelerin kısa açıklamalarını göstermektedir. Bu anahtar kelimelerin kullanımını sonraki bölümlerde tartışacağız.
| Anahtar kelime | Açıklama |
|---|---|
| abstract | Bildirildiği türde uygulama içermeyen veya sanal olan ve varsayılan uygulaması olan bir yöntemi gösterir. |
| and | Karşılıklı özyinelemeli bağlamalarda, özellik bildirimlerinde ve genel parametrelerde birden çok kısıtlamayla kullanılır. |
| as | Mevcut sınıf nesnesine bir nesne adı vermek için kullanılır. Aynı zamanda bir kalıp eşleşmesi içindeki bütün bir kalıba isim vermek için de kullanılır. |
| assert | Hata ayıklama sırasında kodu doğrulamak için kullanılır. |
| base | Temel sınıf nesnesinin adı olarak kullanılır. |
| begin | Ayrıntılı sözdiziminde, bir kod bloğunun başlangıcını belirtir. |
| class | Ayrıntılı sözdiziminde, bir sınıf tanımının başlangıcını belirtir. |
| default | Soyut bir yöntemin uygulanmasını gösterir; sanal bir yöntem oluşturmak için soyut bir yöntem bildirimi ile birlikte kullanılır. |
| delegate | Bir temsilci bildirmek için kullanılır. |
| do | Döngü yapılarında veya zorunlu kodu yürütmek için kullanılır. |
| done | Ayrıntılı sözdiziminde, döngü ifadesinde bir kod bloğunun sonunu belirtir. |
| downcast | Devralma zincirinde daha düşük bir türe dönüştürmek için kullanılır. |
| downto | İçinde for ifade, tersine sayarken kullanılır. |
| elif | Koşullu dallanmada kullanılır. Kısa bir else if. |
| else | Koşullu dallanmada kullanılır. |
| end | Tür tanımlarında ve tür uzantılarında, üye tanımlarının bir bölümünün sonunu belirtir. Ayrıntılı sözdiziminde, begin anahtar sözcüğü ile başlayan bir kod bloğunun sonunu belirtmek için kullanılır. |
| exception | Bir istisna türü bildirmek için kullanılır. |
| extern | Bildirilen bir program öğesinin başka bir ikilide veya derlemede tanımlandığını gösterir. |
| false | Boolean değişmez değeri olarak kullanılır. |
| finally | Bir istisna olup olmadığına bakılmaksızın çalışan bir kod bloğu tanıtmaya çalışmakla birlikte kullanılır. |
| for | Döngü yapılarında kullanılır. |
| fun | Anonim işlevler olarak da bilinen lambda ifadelerinde kullanılır. |
| function | Tek bir bağımsız değişken üzerinde desen eşlemesi olan bir lambda ifadesinde, fun anahtar kelimesine daha kısa bir alternatif ve bir eşleme ifadesi olarak kullanılır. |
| global | En üst düzey .NET ad alanına başvurmak için kullanılır. |
| if | Koşullu dallanma yapılarında kullanılır. |
| in | Sıralı ifadeler için ve ayrıntılı sözdiziminde ifadeleri bağlamalardan ayırmak için kullanılır. |
| inherit | Bir temel sınıf veya temel arabirim belirtmek için kullanılır. |
| inline | Doğrudan arayanın koduna entegre edilmesi gereken bir işlevi belirtmek için kullanılır. |
| interface | Arayüzleri bildirmek ve uygulamak için kullanılır. |
| internal | Bir üyenin montajın içinde görünür olduğunu ancak dışında olmadığını belirtmek için kullanılır. |
| lazy | Yalnızca bir sonuca ihtiyaç duyulduğunda gerçekleştirilecek bir hesaplamayı belirtmek için kullanılır. |
| let | Bir adı bir değer veya işleve ilişkilendirmek veya bağlamak için kullanılır. |
| let! | Eşzamansız iş akışlarında eşzamansız bir hesaplamanın sonucuna bir ad bağlamak için veya diğer hesaplama ifadelerinde hesaplama türündeki bir sonuca bir ad bağlamak için kullanılır. |
| match | Bir değeri bir modelle karşılaştırarak dallanmak için kullanılır. |
| member | Bir nesne türünde bir özelliği veya yöntemi bildirmek için kullanılır. |
| module | Bir adı diğer koddan mantıksal olarak ayırmak için bir grup ilgili tür, değer ve işlevle ilişkilendirmek için kullanılır. |
| mutable | Bir değişkeni, yani değiştirilebilen bir değeri bildirmek için kullanılır. |
| namespace | Bir adı diğer koddan mantıksal olarak ayırmak için bir grup ilgili tür ve modülle ilişkilendirmek için kullanılır. |
| new | Bir nesne oluşturan veya yaratabilen bir kurucu bildirmek, tanımlamak veya çağırmak için kullanılır. Ayrıca, bir türün belirli bir kurucuya sahip olması gerektiğini belirtmek için genel parametre kısıtlamalarında kullanılır. |
| not | Aslında bir anahtar kelime değil. Ancak, kombinasyon halinde olmayan yapı, genel bir parametre kısıtlaması olarak kullanılır. |
| null | Bir nesnenin olmadığını gösterir. Ayrıca genel parametre kısıtlamalarında da kullanılır. |
| of | Ayrımcı sendikalarda, değer kategorilerinin türünü belirtmek için ve temsilci ve istisna bildirimlerinde kullanılır. |
| open | Bir ad alanının veya modülün içeriğini nitelik olmadan kullanılabilir hale getirmek için kullanılır. |
| or | Boolean veya işleç olarak Boole koşullarıyla kullanılır. || ile eşdeğerdir. Üye kısıtlamalarında da kullanılır. |
| override | Temel sürümden farklı olan bir soyut veya sanal yöntemin sürümünü uygulamak için kullanılır. |
| private | Aynı tür veya modülde kodlama yapmak için bir üyeye erişimi kısıtlar. |
| public | Türün dışından bir üyeye erişim sağlar. |
| rec | Bir işlevin özyinelemeli olduğunu belirtmek için kullanılır. |
| return | Hesaplama ifadesinin sonucu olarak sağlanacak değeri belirtmek için kullanılır. |
| return! | Değerlendirildiğinde, içeren hesaplama ifadesinin sonucunu sağlayan bir hesaplama ifadesini belirtmek için kullanılır. |
| select | Hangi alanların veya sütunların çıkarılacağını belirtmek için sorgu ifadelerinde kullanılır. Bunun bağlamsal bir anahtar kelime olduğunu unutmayın; bu, aslında ayrılmış bir kelime olmadığı ve yalnızca uygun bağlamda bir anahtar kelime gibi davrandığı anlamına gelir. |
| static | Bir türün örneği olmadan çağrılabilen bir yöntemi veya özelliği veya bir türün tüm örnekleri arasında paylaşılan bir değer üyesini belirtmek için kullanılır. |
| struct | Bir yapı türünü bildirmek için kullanılır. Ayrıca genel parametre kısıtlamalarında da kullanılır. Modül tanımlarında OCaml uyumluluğu için kullanılır. |
| then | Koşullu ifadelerde kullanılır. Nesne oluşturduktan sonra yan etkileri gerçekleştirmek için de kullanılır. |
| to | Bir aralığı belirtmek için döngülerde kullanılır. |
| true | Boolean değişmez değeri olarak kullanılır. |
| try | Bir istisna oluşturabilecek bir kod bloğu tanıtmak için kullanılır. İle birlikte kullanılır ile veya nihayet. |
| type | Sınıf, kayıt, yapı, ayırt edici birleşim, numaralandırma türü, ölçü birimi veya tür kısaltması bildirmek için kullanılır. |
| upcast | Devralma zincirinde daha yüksek olan bir türe dönüştürmek için kullanılır. |
| use | Dispose'un serbest kaynaklara çağrılmasını gerektiren değerler için let yerine kullanılır. |
| use! | Let yerine kullanılır! Dispose'un serbest kaynaklara çağrılmasını gerektiren değerler için zaman uyumsuz iş akışlarında ve diğer hesaplama ifadelerinde. |
| val | Sınırlı durumlarda bir değeri belirtmek için bir imzada veya bir üye bildirmek için bir türde kullanılır. |
| void | .NET geçersiz türünü gösterir. Diğer .NET dilleriyle birlikte çalışırken kullanılır. |
| when | Kalıp eşleşmelerinde Boole koşulları (korumalar) için ve genel bir tür parametresi için bir kısıtlama cümlesi eklemek için kullanılır. |
| while | Döngü oluşturan bir yapı sunar. |
| with | Model eşleme ifadelerinde eşleme anahtar kelimesi ile birlikte kullanılır. Ayrıca üye tanımlarını tanıtmak ve istisna işleyicileri tanıtmak için nesne ifadelerinde, kayıt kopyalama ifadelerinde ve tür uzantılarında kullanılır. |
| yield | Bir dizi için bir değer üretmek için bir dizi ifadesinde kullanılır. |
| yield! | Bir hesaplama ifadesinde, belirli bir hesaplama ifadesinin sonucunu içeren hesaplama ifadesi için bir sonuç koleksiyonuna eklemek için kullanılır. |
Bazı ayrılmış anahtar kelimeler OCaml dilinden geldi -
| asr | arazi | lor | lsl | lsr | lxor | mod | sig |
Diğer bazı ayrılmış anahtar sözcükler, F # 'nin gelecekteki genişletmesi için tutulur.
| atomik | kırmak | kontrol | bileşen | sabit | kısıtlama | 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!