F# Dili BaşvurusuF# Language Reference

Bu bölüm, .NET hedefleyen çok faktörlü F# programlama dili olan dile bir başvurudur.This section is a reference to the F# language, a multi-paradigm programming language targeting .NET. F# Dil işlev, nesne yönelimli ve kesinlik temelli programlama modellerini destekler.The F# language supports functional, object-oriented and imperative programming models.

F#SimgeleriniF# Tokens

Aşağıdaki tabloda, içinde F#belirteç olarak kullanılan anahtar sözcükler, semboller ve sabit değerler tabloları sağlayan başvuru konuları gösterilmektedir.The following table shows reference topics that provide tables of keywords, symbols and literals used as tokens in F#.

BaşlıkTitle AçıklamaDescription
Klavye BaşvurusuKeyword Reference Tüm F# dil anahtar kelimeleri hakkındaki bilgilerin bağlantılarını içerir.Contains links to information about all F# language keywords.
Simge ve İşleç BaşvurusuSymbol and Operator Reference F# Dilde kullanılan bir sembol ve işleç tablosu içerir.Contains a table of symbols and operators that are used in the F# language.
Değişmez DeğerlerLiterals İçindeki F# değişmez değerler için söz dizimini ve değişmez değer için F# tür bilgilerinin nasıl belirtileceğini açıklar.Describes the syntax for literal values in F# and how to specify type information for F# literals.

F#Dil kavramlarıF# Language Concepts

Aşağıdaki tabloda, dil kavramlarını tanımlayan kullanılabilir başvuru konuları gösterilmektedir.The following table shows reference topics available that describe language concepts.

BaşlıkTitle AçıklamaDescription
İşlevlerFunctions İşlevler, herhangi bir programlama dilinde program yürütmenin temel birimidir.Functions are the fundamental unit of program execution in any programming language. Diğer dillerde olduğu gibi, bir F# işlevin adı vardır, parametreleri olabilir ve bağımsız değişkenler alabilir ve bir gövdeye sahip olabilir.As in other languages, an F# function has a name, can have parameters and take arguments, and has a body. F#Ayrıca, işlevleri değer olarak davranma, ifadelerde adlandırılmamış işlevleri kullanma, yeni işlevler, curried işlevleri ve kısmi olarak işlevlerin örtük tanımına göre işlev oluşturma gibi işlev programlama yapılarını destekler. işlev bağımsız değişkenlerinin uygulaması.F# also supports functional programming constructs such as treating functions as values, using unnamed functions in expressions, composition of functions to form new functions, curried functions, and the implicit definition of functions by way of the partial application of function arguments.
F# TürleriF# Types İçinde F# kullanılan türleri ve türlerin adlandırılması ve açıklanme F# biçimini açıklar.Describes the types that are used in F# and how F# types are named and described.
Tür ÇıkarımıType Inference F# Derleyicinin değer, değişken, parametre ve dönüş değeri türlerini nasıl kullandığını açıklar.Describes how the F# compiler infers the types of values, variables, parameters and return values.
Otomatik GenelleştirmeAutomatic Generalization ' De F#genel yapıları açıklar.Describes generic constructs in F#.
DevralmaInheritance Nesne odaklı programlamada "a-a" ilişkisini veya alt yazmayı modellemek için kullanılan devralmayı açıklar.Describes inheritance, which is used to model the "is-a" relationship, or subtyping, in object-oriented programming.
ÜyelerMembers F# Nesne türlerinin üyelerini açıklar.Describes members of F# object types.
Parametreler ve Bağımsız DeğişkenlerParameters and Arguments Parametreleri tanımlama ve işlevlere, yöntemlere ve özelliklere bağımsız değişkenleri geçirme için dil desteğini açıklar.Describes language support for defining parameters and passing arguments to functions, methods, and properties. Başvuruya göre geçme hakkında bilgi içerir.It includes information about how to pass by reference.
İşleç Aşırı YüklemesiOperator Overloading Bir sınıf veya kayıt türünde ve genel düzeyde aritmetik işleçlerin nasıl aşırı yükleneceğini açıklar.Describes how to overload arithmetic operators in a class or record type, and at the global level.
Tür Değiştirme ve DönüştürmelerCasting and Conversions İçindeki F#tür dönüştürmeleri için desteği açıklar.Describes support for type conversions in F#.
Erişim DenetimiAccess Control İçindeki F#erişim denetimini açıklar.Describes access control in F#. Erişim denetimi, istemcilerin türler, Yöntemler, işlevler vb. gibi belirli program öğelerini kullanabildiklerini bildiren anlamına gelir.Access control means declaring what clients are able to use certain program elements, such as types, methods, functions and so on.
Desen EşleştirmePattern Matching Verileri bir desenle karşılaştırmak, verileri yapısal parçalar halinde çıkarmak veya verileri çeşitli yollarla ayıklamak F# için dil genelinde kullanılan giriş verilerini dönüştürme kuralları olan desenleri açıklar.Describes patterns, which are rules for transforming input data that are used throughout the F# language to extract compare data with a pattern, decompose data into constituent parts, or extract information from data in various ways.
Etkin DesenlerActive Patterns Etkin desenleri açıklar.Describes active patterns. Etkin desenler, giriş verilerini bölümlendirilen adlandırılmış bölümler tanımlamanızı sağlar.Active patterns enable you to define named partitions that subdivide input data. Her bölüm için özelleştirilmiş bir şekilde verileri ayırmak için etkin desenleri kullanabilirsiniz.You can use active patterns to decompose data in a customized manner for each partition.
OnaylamalarAssertions Bir ifadeyi test etmek için kullanabileceğiniz bir hata ayıklama özelliği olan assert ifadesini açıklar.Describes the assert expression, which is a debugging feature that you can use to test an expression. Hata ayıklama modunda hata oluştuğunda bir onaylama işlemi bir sistem hatası iletişim kutusu oluşturur.Upon failure in Debug mode, an assertion generates a system error dialog box.
Özel Durum İşlemeException Handling F# Dilde özel durum işleme desteği hakkında bilgi içerir.Contains information about exception handling support in the F# language.
özelliklerineattributes Meta verilerin bir programlama yapısına uygulanmasını sağlayan öznitelikleri açıklar.Describes attributes, which enable metadata to be applied to a programming construct.
Kaynak yönetimi: use anahtar sözcüğüResource Management: The use Keyword Kaynak başlatma ve serbest bırakma işlemini denetleyebilen use ve usinganahtar sözcüklerini açıklarDescribes the keywords use and using, which can control the initialization and release of resources
özniteliklerinamespaces İçinde F#ad alanı desteğini açıklar.Describes namespace support in F#. Bir ad alanı, program öğeleri gruplandırmasına bir ad iliştirmenizi sağlayarak kodu ilgili işlevlerin alanlarıyla düzenlemenizi sağlar.A namespace lets you organize code into areas of related functionality by enabling you to attach a name to a grouping of program elements.
ModüllerModules Modüller açıklanmaktadır.Describes modules. F# Modül, bir F# programdaki değerler, türler ve işlev değerleri gibi bir F# kod gruplandırmasıdır.An F# module is a grouping of F# code, such as values, types, and function values, in an F# program. Modüllerde kod gruplandırma, ilgili kodu birlikte tutmaya yardımcı olur ve programınızda ad çakışmalarını önlemeye yardımcı olur.Grouping code in modules helps keep related code together and helps avoid name conflicts in your program.
İçeri aktarma bildirimleri: open anahtar sözcüğüImport Declarations: The open Keyword open nasıl çalıştığını açıklar.Describes how open works. İçeri aktarma bildirimi, öğelerini tam nitelikli bir ad kullanmadan başvuralabileceğiniz bir modül veya ad alanını belirtir.An import declaration specifies a module or namespace whose elements you can reference without using a fully qualified name.
İmzalarSignatures İmzaları ve imza dosyalarını açıklar.Describes signatures and signature files. İmza dosyası türler, ad alanları ve modüller gibi bir F# program öğeleri kümesinin genel imzaları hakkında bilgiler içerir.A signature file contains information about the public signatures of a set of F# program elements, such as types, namespaces, and modules. Bu program öğelerinin erişilebilirliğini belirtmek için kullanılabilir.It can be used to specify the accessibility of these program elements.
XML BelgeleriXML Documentation Üçlü eğik çizgi açıklamaları olarak da bilinen XML belgesi açıklamaları için belge dosyası oluşturma desteğini açıklar.Describes support for generating documentation files for XML doc comments, also known as triple slash comments. Kod açıklamalarından F# daha fazla .net dilinde olduğu gibi belgeler üretebilirsiniz.You can produce documentation from code comments in F# just as in other .NET languages.
Ayrıntılı Söz DizimiVerbose Syntax Hafif sözdizimi etkin olmadığında F# yapıların sözdizimini açıklar.Describes the syntax for F# constructs when lightweight syntax is not enabled. Ayrıntılı sözdizimi, kod dosyasının en üstündeki #light "off" yönergesi tarafından gösterilir.Verbose syntax is indicated by the #light "off" directive at the top of the code file.

F# TürleriF# Types

Aşağıdaki tabloda, F# dil tarafından desteklenen türleri tanımlayan kullanılabilir başvuru konuları gösterilmektedir.The following table shows reference topics available that describe types supported by the F# language.

BaşlıkTitle AçıklamaDescription
deðerlervalues Belirli bir türe sahip sabit miktarlar olan değerleri açıklar; değerler tamsayı veya kayan nokta sayıları, karakterler veya metin, listeler, sıralar, diziler, tanımlama grupları, ayırt edici birleşimler, kayıtlar, sınıf türleri veya işlev değerleri olabilir.Describes values, which are immutable quantities that have a specific type; values can be integral or floating point numbers, characters or text, lists, sequences, arrays, tuples, discriminated unions, records, class types, or function values.
Temel TürlerBasic Types F# Dilde kullanılan temel temel türleri açıklar.Describes the fundamental basic types that are used in the F# language. Ayrıca, her tür için karşılık gelen .NET türlerini ve en düşük ve en yüksek değerleri sağlar.It also provides the corresponding .NET types and the minimum and maximum values for each type.
Birim TürüUnit Type Belirli bir değerin yokluğunu gösteren bir tür olan unit türünü açıklar; unit türü, başka bir değer yoksa veya gerekli olmadığında yer tutucu olarak davranan yalnızca tek bir değere sahiptir.Describes the unit type, which is a type that indicates the absence of a specific value; the unit type has only a single value, which acts as a placeholder when no other value exists or is needed.
DizelerStrings İçindeki F#dizeleri açıklar.Describes strings in F#. string türü, Unicode karakter dizisi olarak sabit metni temsil eder.The string type represents immutable text, as a sequence of Unicode characters. string, .NET Framework System.String için bir diğer addır.string is an alias for System.String in the .NET Framework.
DemetlerTuples Adlandırılmamış, ancak muhtemelen farklı türlerin sıralı değerlerinin gruplamaları olan tanımlama gruplarını açıklar.Describes tuples, which are groupings of unnamed but ordered values of possibly different types.
F# Koleksiyon TürleriF# Collection Types Diziler, listeler, F# diziler (seq), haritalar ve kümeler için türler de dahil olmak üzere işlevsel koleksiyon türlerine genel bakış.An overview of the F# functional collection types, including types for arrays, lists, sequences (seq), maps, and sets.
ListelerLists Listeleri açıklar.Describes lists. İçindeki F# bir liste, aynı türden tümü sıralanmış, sabit bir öğe dizisidir.A list in F# is an ordered, immutable series of elements all of the same type.
SeçeneklerOptions Seçenek türünü açıklar.Describes the option type. ' De F# bir seçenek, bir değer varsa veya mevcut olmadığında kullanılır.An option in F# is used when a value may or may not exist. Bir seçenek temel bir türe sahiptir ve bu tür bir değeri tutabilir ya da bir değere sahip olmayabilir.An option has an underlying type and may either hold a value of that type or it may not have a value.
DizilerSequences Dizileri açıklar.Describes sequences. Dizi, tek bir türdeki öğelerin mantıksal bir dizisidir.A sequence is a logical series of elements all of one type. Tek tek dizi öğeleri yalnızca gerekliyse hesaplanır, bu nedenle gösterim bir sabit öğe sayısı değerinden daha küçük olabilir.Individual sequence elements are only computed if required, so the representation may be smaller than a literal element count indicates.
DizilerArrays Dizileri açıklar.Describes arrays. Diziler, hepsi aynı türde olan sabit boyutlu, sıfır tabanlı ve değiştirilebilir dizilerdir.Arrays are fixed-size, zero-based, mutable sequences of consecutive data elements, all of the same type.
KayıtlarRecords Kayıtları açıklar.Describes records. Kayıtlar, isteğe bağlı olarak Üyeler ile adlandırılmış değerlerin basit toplamlarını temsil eder.Records represent simple aggregates of named values, optionally with members.
Ayrılmış BirleşimlerDiscriminated Unions Her biri büyük olasılıkla farklı değerler ve türler içeren çeşitli adlandırılmış durumlardan biri olabilecek değerler için destek sağlayan ayırt edici birleşimleri açıklar.Describes discriminated unions, which provides support for values which may be one of a variety of named cases, each with possibly different values and types.
Sabit ListeleriEnumerations Numaralandırmaların tanımlanmış bir adlandırılmış değerler kümesine sahip türleri olduğunu açıklar.Describes enumerations are types that have a defined set of named values. Kodu daha okunaklı ve bakım yapılabilir hale getirmek için bunları değişmez değerler yerine kullanabilirsiniz.You can use them in place of literals to make code more readable and maintainable.
Başvuru HücreleriReference Cells Başvuru semantiğinin değişebilir değişkenler oluşturmanızı sağlayan depolama konumları olan başvuru hücrelerini açıklar.Describes reference cells, which are storage locations that enable you to create mutable variables with reference semantics.
Tür KısaltmalarıType Abbreviations Türler için alternatif adlar olan tür kısaltmalarını açıklar.Describes type abbreviations, which are alternate names for types.
SınıflarClasses Özelliklere, yöntemlere ve olaylara sahip olabilecek nesneleri temsil eden türler olan sınıfları açıklar.Describes classes, which are types that represent objects that can have properties, methods, and events.
YapılarStructures Az miktarda veri ve basit davranışa sahip olan türler için bir sınıftan daha verimli olabilecek, Compact nesne türleri olan yapıları açıklar.Describes structures, which are compact object types that can be more efficient than a class for types that have a small amount of data and simple behavior.
ArabirimlerInterfaces Diğer sınıfların uygulayan ilgili üye kümelerini belirten arabirimlerini açıklar.Describes interfaces, which specify sets of related members that other classes implement.
Soyut SınıflarAbstract Classes Uygulamaların türetilmiş sınıflar tarafından sağlanabilmesi için bazı veya tüm üyeleri uygulanmayan sınıflar olan soyut sınıfları açıklar.Describes abstract classes, which are classes that leave some or all members unimplemented, so that implementations can be provided by derived classes.
Tür UzantılarıType Extensions Daha önce tanımlanmış bir nesne türüne yeni üyeler eklemenize olanak sağlayan tür uzantılarını açıklar.Describes type extensions, which let you add new members to a previously defined object type.
Esnek TürlerFlexible Types Esnek türleri açıklar.Describes flexible types. Esnek tür ek açıklaması, bir parametre, değişken veya değerin belirtilen tür ile uyumlu bir tür olduğunu belirtir; burada uyumluluk, nesne odaklı sınıfların veya arabirimlerin bulunduğu konuma göre belirlenir.A flexible type annotation is an indication that a parameter, variable or value has a type that is compatible with type specified, where compatibility is determined by position in an object-oriented hierarchy of classes or interfaces.
TemsilcilerDelegates Bir işlev çağrısını nesne olarak temsil eden temsilcileri açıklar.Describes delegates, which represent a function call as an object.
Ölçü BirimleriUnits of Measure Ölçü birimlerini açıklar.Describes units of measure. İçindeki F# kayan nokta değerleri, genellikle uzunluğu, hacmi, kütle, vb. belirtmek için kullanılan, ilişkili ölçü birimlerine sahip olabilir.Floating point values in F# can have associated units of measure, which are typically used to indicate length, volume, mass, and so on.
Tür SağlayıcılarıType Providers Türü açıklar ve, veritabanlarına ve Web hizmetlerine erişmek için yerleşik tür sağlayıcılarını kullanma hakkındaki izlenecek yollara bağlantılar sağlar.Describes type provides and provides links to walkthroughs on using the built-in type providers to access databases and web services.

F#İfadelerdeF# Expressions

Aşağıdaki tabloda, ifadeleri betimleyen F# konular listelenmektedir.The following table lists topics that describe F# expressions.

BaşlıkTitle AçıklamaDescription
Koşullu Ifadeler: if...then...elseConditional Expressions: if...then...else Kodun farklı dallarını çalıştıran ve ayrıca verilen Boolean ifadeye bağlı olarak farklı bir değere değerlendirilen if...then...else ifadesini açıklar.Describes the if...then...else expression, which runs different branches of code and also evaluates to a different value depending on the Boolean expression given.
Eşleşme İfadeleriMatch Expressions Desen kümesine sahip bir ifadenin karşılaştırmasına dayalı olarak dallanma denetimi sağlayan match ifadesini açıklar.Describes the match expression, which provides branching control that is based on the comparison of an expression with a set of patterns.
Döngüler: for...to IfadeLoops: for...to Expression Bir döngü değişkeninin değer aralığı üzerinde bir döngüde yinelemek için kullanılan for...to ifadesini açıklar.Describes the for...to expression, which is used to iterate in a loop over a range of values of a loop variable.
Döngüler: for...in IfadeLoops: for...in Expression Bir Aralık ifadesi, sırası, liste, dizi ya da numaralandırmayı destekleyen diğer yapı gibi sıralanabilir bir koleksiyondaki bir düzenin eşleşmelerini yinelemek için kullanılan bir döngü yapısı olan for...in ifadesini açıklar.Describes the for...in expression, a looping construct that is used to iterate over the matches of a pattern in an enumerable collection such as a range expression, sequence, list, array, or other construct that supports enumeration.
Döngüler: while...do IfadeLoops: while...do Expression Belirtilen test koşulu doğru olduğunda yinelemeli yürütmeyi (döngü) gerçekleştirmek için kullanılan while...do ifadesini açıklar.Describes the while...do expression, which is used to perform iterative execution (looping) while a specified test condition is true.
Nesne İfadeleriObject Expressions Mevcut bir temel türü, arabirimi veya arabirim kümesini temel alan dinamik olarak oluşturulan, anonim nesne türünün yeni örneklerini oluşturan ifadeler olan nesne ifadelerini açıklar.Describes object expressions, which are expressions that create new instances of a dynamically created, anonymous object type that is based on an existing base type, interface, or set of interfaces.
Gecikmeli İfadelerLazy Expressions Hemen değerlendirilmediği hesaplamalar olan yavaş ifadeleri açıklar, ancak bunun yerine sonuç gerçekten gerektiğinde değerlendirilir.Describes lazy expressions, which are computations that are not evaluated immediately, but are instead evaluated when the result is actually needed.
Hesaplama İfadeleriComputation Expressions İçindeki F#hesaplama ifadelerini açıklar ve bu, denetim akışı yapıları ve bağlamaları kullanılarak sıralanmakta ve birleştirilebilir hesaplamalar yazmak için kullanışlı bir sözdizimi sağlar.Describes computation expressions in F#, which provide a convenient syntax for writing computations that can be sequenced and combined using control flow constructs and bindings. Bunlar, işlevsel programlardaki verileri, denetimi ve yan etkileri yönetmek için kullanılabilen bir işlevsel programlama özelliği olan monadlarıiçin uygun bir sözdizimi sağlamak üzere kullanılabilir.They can be used to provide a convenient syntax for monads, a functional programming feature that can be used to manage data, control and side effects in functional programs. Bir tür hesaplama ifadesi, zaman uyumsuz iş akışı, zaman uyumsuz ve paralel hesaplamalar için destek sağlar.One type of computation expression, the asynchronous workflow, provides support for asynchronous and parallel computations. Daha fazla bilgi için bkz. zaman uyumsuz Iş akışları.For more information, see Asynchronous Workflows.
Zaman Uyumsuz İş AkışlarıAsynchronous Workflows Zaman uyumsuz kodu, doğal olarak zaman uyumlu olarak yazacağınız bir şekilde yazmanıza imkan tanıyan bir dil özelliği olan zaman uyumsuz iş akışlarını açıklar.Describes asynchronous workflows, a language feature that lets you write asynchronous code in a way that is very close to the way you would naturally write synchronous code.
Kod AlıntılarıCode Quotations Kod ifadelerini programlama yoluyla oluşturmanıza ve bunlarla F# çalışmanıza olanak tanıyan bir dil özelliği olan kod tekliflerini açıklar.Describes code quotations, a language feature that enables you to generate and work with F# code expressions programmatically.
Sorgu İfadeleriQuery Expressions İçin F# LINQ uygulayan ve bir veri kaynağına veya sıralanabilir koleksiyona karşı sorgular yazmanızı sağlayan bir dil özelliği olan sorgu ifadelerini açıklar.Describes query expressions, a language feature that implements LINQ for F# and enables you to write queries against a data source or enumerable collection.

Derleyici tarafından desteklenen yapılarCompiler-supported Constructs

Aşağıdaki tabloda, derleyicinin desteklediği özel yapıları anlatan konular listelenmektedir.The following table lists topics that describe special compiler-supported constructs.

KonuTopic AçıklamaDescription
Derleyici SeçenekleriCompiler Options F# Derleyici için komut satırı seçeneklerini açıklar.Describes the command-line options for the F# compiler.
Derleyici YönergeleriCompiler Directives İşlemci yönergelerini ve derleyici yönergelerini açıklar.Describes processor directives and compiler directives.
Kaynak Satırı, Dosya ve Yol TanımlayıcılarıSource Line, File, and Path Identifiers Kodunuzda kaynak satır numarası, dizin ve dosya adına erişmenizi sağlayan yerleşik değerler olan __LINE__, __SOURCE_DIRECTORY__ ve __SOURCE_FILE__tanımlayıcılarını açıklar.Describes the identifiers __LINE__, __SOURCE_DIRECTORY__ and __SOURCE_FILE__, which are built-in values that enable you to access the source line number, directory and file name in your code.