F# 언어 참조F# Language Reference

이 섹션은 .NET을 대상으로 F# 하는 다중 패러다임 프로그래밍 언어인 언어에 대 한 참조입니다.This section is a reference to the F# language, a multi-paradigm programming language targeting .NET. F# 언어는 함수형, 개체 지향 그리고 명령형의 프로그래밍 모델을 지원합니다.The F# language supports functional, object-oriented and imperative programming models.

F# 토큰F# Tokens

다음 표에서는 F#의 키워드, 기호 및 토큰으로 사용되는 리터럴의 테이블을 제공하는 참조 항목을 보여 줍니다.The following table shows reference topics that provide tables of keywords, symbols and literals used as tokens in F#.

제목Title 설명Description
키워드 참조Keyword Reference 모든 F# 언어 키워드에 대한 정보 링크를 포함합니다.Contains links to information about all F# language keywords.
기호 및 연산자 참조Symbol and Operator Reference F# 언어에서 사용되는 기호와 연산자의 테이블을 포함합니다.Contains a table of symbols and operators that are used in the F# language.
리터럴Literals F#의 리터럴 값 구문 그리고 F# 리터럴에 대한 형식 정보를 지정하는 방법에 대해 설명합니다.Describes the syntax for literal values in F# and how to specify type information for F# literals.

F# 언어 개념F# Language Concepts

다음 표에서는 언어 개념을 설명하는 사용 가능한 참조 항목을 보여 줍니다.The following table shows reference topics available that describe language concepts.

제목Title 설명Description
함수Functions 함수는 모든 프로그래밍 언어에서 프로그램 실행의 기본 단위입니다.Functions are the fundamental unit of program execution in any programming language. 다른 언어와 마찬가지로 F# 함수는 이름을 가지며, 매개 변수 및 인수를 사용할 수 있고, 본문을 포함합니다.As in other languages, an F# function has a name, can have parameters and take arguments, and has a body. 또한 F#은 함수를 값으로 처리, 식에 명명되지 않은 함수 사용, 함수를 합성하여 새로운 함수 생성, 커리된 함수, 함수 인수를 부분적으로 적용하는 방식의 암시적 함수 정의 등 함수형 프로그래밍 구문도 지원합니다.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# 형식F# Types F#에 사용되는 형식 그리고 F# 형식을 명명하고 설명하는 방법에 대해 설명합니다.Describes the types that are used in F# and how F# types are named and described.
형식 유추Type Inference F# 컴파일러가 값, 변수, 매개 변수 및 반환 값의 형식을 유추하는 방법에 대해 설명합니다.Describes how the F# compiler infers the types of values, variables, parameters and return values.
자동 일반화Automatic Generalization F#의 일반 구문에 대해 설명합니다.Describes generic constructs in F#.
상속Inheritance 개체 지향 프로그래밍에서 "동등" 관계 또는 하위 유형을 모델링하는 데 사용되는 상속에 대해 설명합니다.Describes inheritance, which is used to model the "is-a" relationship, or subtyping, in object-oriented programming.
멤버Members F# 개체 형식의 멤버에 대해 설명합니다.Describes members of F# object types.
매개 변수 및 인수Parameters and Arguments 매개 변수를 정의하고 함수, 메서드 및 속성에 인수를 전달하기 위한 언어 지원에 대해 설명합니다.Describes language support for defining parameters and passing arguments to functions, methods, and properties. 참조를 통한 전달 방법에 대한 자세한 내용을 포함합니다.It includes information about how to pass by reference.
연산자 오버로드Operator Overloading 전역 수준에서 클래스 또는 레코드 형식에 산술 연산자를 오버로드하는 방법에 대해 설명합니다.Describes how to overload arithmetic operators in a class or record type, and at the global level.
캐스팅 및 변환Casting and Conversions F#의 형식 변환 지원에 대해 설명합니다.Describes support for type conversions in F#.
Access ControlAccess Control F#의 액세스 제어에 대해 설명합니다.Describes access control in F#. 액세스 제어란 형식, 메서드, 함수 등의 특정 프로그램 요소를 사용할 수 있는 클라이언트를 선언한다는 것을 의미합니다.Access control means declaring what clients are able to use certain program elements, such as types, methods, functions and so on.
패턴 일치Pattern Matching 특정 패턴의 비교 데이터를 추출하거나, 데이터를 구성 부분으로 분해하거나, 다양한 방법으로 데이터에서 정보를 추출하도록 F# 언어에서 사용되는 입력 데이터를 변환하는 규칙 패턴에 대해 설명합니다.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.
활성 패턴Active Patterns 활성 패턴에 대해 설명합니다.Describes active patterns. 활성 패턴을 사용하여 입력 데이터를 분할하는 명명된 파티션을 정의할 수 있습니다.Active patterns enable you to define named partitions that subdivide input data. 활성 패턴을 사용하여 각 파티션에 대한 사용자 지정 방식으로 데이터를 분해할 수 있습니다.You can use active patterns to decompose data in a customized manner for each partition.
어설션Assertions 식을 테스트하는 데 사용할 수 있는 디버깅 기능인 assert 식에 대해 설명합니다.Describes the assert expression, which is a debugging feature that you can use to test an expression. 디버그 모드에서 실패 시 어설션에서 시스템 오류 대화 상자를 생성합니다.Upon failure in Debug mode, an assertion generates a system error dialog box.
예외 처리Exception Handling F# 언어의 예외 처리 지원에 대한 정보를 포함합니다.Contains information about exception handling support in the F# language.
특성attributes 프로그래밍 구문에 메타데이터를 적용할 수 있도록 지원하는 특성에 대해 설명합니다.Describes attributes, which enable metadata to be applied to a programming construct.
리소스 관리: use 키워드Resource Management: The use Keyword 리소스의 초기화 및 해제를 제어할 수 있는 useusing 키워드에 대해 설명합니다.Describes the keywords use and using, which can control the initialization and release of resources
네임스페이스namespaces F#의 네임스페이스 지원에 대해 설명합니다.Describes namespace support in F#. 네임스페이스를 통해 프로그램 요소의 그룹에 이름을 연결하여 관련 기능 영역으로 코드를 체계화할 수 있습니다.A namespace lets you organize code into areas of related functionality by enabling you to attach a name to a grouping of program elements.
모듈Modules 모듈에 대해 설명합니다.Describes modules. F# 모듈은 F# 프로그램에서 값, 형식 및 함수 값과 같은 F# 코드의 그룹화입니다.An F# module is a grouping of F# code, such as values, types, and function values, in an F# program. 모듈로 코드를 그룹화하면 관련 코드를 함께 유지하고, 프로그램의 이름 충돌을 방지하는 데 도움이 됩니다.Grouping code in modules helps keep related code together and helps avoid name conflicts in your program.
선언 가져오기: open 키워드Import Declarations: The open Keyword open의 작동 방식에 대해 설명합니다.Describes how open works. 가져오기 선언은 정규화된 이름을 사용하지 않고 참조할 수 있는 요소의 모듈 또는 네임스페이스를 지정합니다.An import declaration specifies a module or namespace whose elements you can reference without using a fully qualified name.
서명Signatures 시그니처 및 시그니처 파일에 대해 설명합니다.Describes signatures and signature files. 서명 파일에는 형식, 네임스페이스, 모듈 등 F# 프로그램 요소 집합의 공개 서명에 대한 정보가 포함됩니다.A signature file contains information about the public signatures of a set of F# program elements, such as types, namespaces, and modules. 이러한 프로그램 요소의 접근성을 지정하는 데 사용할 수 있습니다.It can be used to specify the accessibility of these program elements.
XML 문서XML Documentation 삼중 슬래시 주석이라고도 하는 XML 문서 주석에 대한 설명서 파일 생성 지원에 대해 설명합니다.Describes support for generating documentation files for XML doc comments, also known as triple slash comments. 다른 .NET 언어와 마찬가지로 F#의 코드 주석에서 문서를 생성할 수 있습니다.You can produce documentation from code comments in F# just as in other .NET languages.
자세한 구문Verbose Syntax 간단한 구문을 사용할 수 없는 경우의 F# 구문에 대해 설명합니다.Describes the syntax for F# constructs when lightweight syntax is not enabled. 자세한 구문은 코드 파일 맨 위에 있는 #light "off" 지시문으로 표시됩니다.Verbose syntax is indicated by the #light "off" directive at the top of the code file.

F# 형식F# Types

다음 표에서는 F# 언어에서 지원하는 형식을 설명하는 사용 가능한 참조 항목을 보여 줍니다.The following table shows reference topics available that describe types supported by the F# language.

제목Title 설명Description
values 특정 형식을 가진 변경 불가능한 수량인 값에 대해 설명합니다. 값은 정수 또는 부동 소수점 숫자, 문자 또는 텍스트, 목록, 시퀀스, 배열, 튜플, 구분된 공용 구조체, 레코드, 클래스 형식 또는 함수 값이 될 수 있습니다.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.
기본 형식Basic Types F# 언어에서 사용 되는 기본 기본 형식을 설명 합니다.Describes the fundamental basic types that are used in the F# language. 또한 각 유형의 해당 .NET 형식과 최소 및 최대값을 제공합니다.It also provides the corresponding .NET types and the minimum and maximum values for each type.
단위 형식Unit Type 특정 값이 없음을 나타내는 형식인 unit 형식에 대해 설명합니다. unit 형식은 다른 값이 없거나 필요하지 않을 때 표시자 역할을 하는 단일 값만 포함합니다.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.
문자열Strings F#의 문자열에 대해 설명합니다.Describes strings in F#. string 형식은 유니코드 문자 시퀀스로 변경할 수 없는 텍스트를 나타냅니다.The string type represents immutable text, as a sequence of Unicode characters. string은 .NET Framework에서 System.String의 별칭입니다.string is an alias for System.String in the .NET Framework.
튜플Tuples 가능한 여러 형식의 명명되지는 않았지만 순서가 지정된 값에 대한 그룹화인 튜플에 대해 설명합니다.Describes tuples, which are groupings of unnamed but ordered values of possibly different types.
F# 컬렉션 형식F# Collection Types 배열, 목록, 시퀀스(seq), 맵 및 집합에 대한 형식을 비롯하여 F# 함수 컬렉션 형식을 간략하게 설명합니다.An overview of the F# functional collection types, including types for arrays, lists, sequences (seq), maps, and sets.
목록Lists 목록에 대해 설명합니다.Describes lists. F#의 목록은 동일 형식의 순서가 지정되고 변경할 수 없는 일련의 모든 요소입니다.A list in F# is an ordered, immutable series of elements all of the same type.
옵션Options 옵션 형식에 대해 설명합니다.Describes the option type. F#의 옵션은 값이 있거나 없을 때 사용됩니다.An option in F# is used when a value may or may not exist. 옵션에는 기본 형식이 있으며 해당 형식의 값을 보유하거나 값을 보유하지 않을 수 있습니다.An option has an underlying type and may either hold a value of that type or it may not have a value.
시퀀스Sequences 시퀀스에 대해 설명합니다.Describes sequences. 시퀀스란 한 형식을 가진 일련의 모든 논리적 요소입니다.A sequence is a logical series of elements all of one type. 개별 시퀀스 요소는 필요한 경우에만 계산되므로, 표현이 리터럴 요소 개수가 나타내는 것보다 작을 수 있습니다.Individual sequence elements are only computed if required, so the representation may be smaller than a literal element count indicates.
배열Arrays 배열에 대해 설명합니다.Describes arrays. 배열은 동일한 형식의 모든 연속 데이터 요소의 변경 가능한 시퀀스로 고정 크기이며 0부터 시작합니다.Arrays are fixed-size, zero-based, mutable sequences of consecutive data elements, all of the same type.
레코드Records 레코드에 대해 설명합니다.Describes records. 레코드는 명명된 값의 간단한 집계(경우에 따라 멤버가 포함된)를 나타냅니다.Records represent simple aggregates of named values, optionally with members.
구별된 공용 구조체Discriminated Unions 구분된 공용 구조체에 대해 설명합니다. 구분된 공용 구조체는 다양한 명명된 사례 중 하나인 값을 지원하며, 각 사례는 서로 다른 값과 형식을 가질 수 있습니다.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.
열거형Enumerations 열거형은 명명된 값의 정의된 집합을 포함하는 형식이라는 것을 설명합니다.Describes enumerations are types that have a defined set of named values. 코드를 더 읽기 쉽고 유지 가능하도록 만들기 위해 리터럴 대신 이를 사용할 수 있습니다.You can use them in place of literals to make code more readable and maintainable.
참조 셀Reference Cells 참조 의미론을 통해 변경 가능한 값을 만드는 데 사용할 수 있는 스토리지 위치인 참조 셀에 대해 설명합니다.Describes reference cells, which are storage locations that enable you to create mutable variables with reference semantics.
형식 약어Type Abbreviations 형식의 대체 이름인 형식 약어에 대해 설명합니다.Describes type abbreviations, which are alternate names for types.
클래스Classes 속성, 메서드 및 이벤트를 가질 수 있는 개체를 나타내는 형식인 클래스에 대해 설명합니다.Describes classes, which are types that represent objects that can have properties, methods, and events.
구조체Structures 데이터의 양이 적고 동작이 단순한 형식에 대해 클래스보다 효율적일 수 있는 간단한 개체 형식인 구조체에 대해 설명합니다.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.
인터페이스Interfaces 다른 클래스에서 구현하는 관련 멤버의 집합을 지정하는 인터페이스에 대해 설명합니다.Describes interfaces, which specify sets of related members that other classes implement.
추상 클래스Abstract Classes 파생된 클래스에서 구현할 수 있도록 일부 또는 모든 멤버를 구현되지 않은 상태로 유지하는 클래스인 추상 클래스에 대해 설명합니다.Describes abstract classes, which are classes that leave some or all members unimplemented, so that implementations can be provided by derived classes.
형식 확장명Type Extensions 이전에 정의된 개체 형식에 새 멤버를 추가할 수 있는 형식 확장에 대해 설명합니다.Describes type extensions, which let you add new members to a previously defined object type.
유연한 형식Flexible Types 유연한 형식에 대해 설명합니다.Describes flexible types. 유연한 형식 주석은 매개 변수, 변수 또는 값에 지정된 형식과 호환되는 형식을 갖고 있음을 나타냅니다. 호환성은 클래스 또는 인터페이스의 개체 지향 계층 구조에서의 위치로 결정됩니다.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.
대리자Delegates 함수 호출을 개체로 나타내는 대리자에 대해 설명합니다.Describes delegates, which represent a function call as an object.
측정 단위Units of Measure 측정 단위에 대해 설명합니다.Describes units of measure. F#의 부동 소수점 값은 연결된 측정 단위를 포함할 수 있으며, 측정 단위는 일반적으로 길이, 볼륨, 질량 등을 나타내는 데 사용됩니다.Floating point values in F# can have associated units of measure, which are typically used to indicate length, volume, mass, and so on.
형식 공급자Type Providers 형식 공급자를 설명하고 기본 제공 형식 공급자를 사용하여 데이터베이스 및 웹 서비스에 액세스하는 연습 링크를 제공합니다.Describes type provides and provides links to walkthroughs on using the built-in type providers to access databases and web services.

F# 식F# Expressions

다음 표에는 F# 식을 설명하는 항목이 나와 있습니다.The following table lists topics that describe F# expressions.

제목Title 설명Description
조건식: if...then...elseConditional Expressions: if...then...else 코드의 다른 분기를 실행하고 지정된 부울 식에 따라 다른 값을 평가하는 if...then...else 식에 대해 설명합니다.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.
일치 식Match Expressions 분기 제어를 제공하는 match 식에 대해 설명합니다. 분기 제어는 특정 패턴의 집합을 사용한 식 비교를 기반으로 합니다.Describes the match expression, which provides branching control that is based on the comparison of an expression with a set of patterns.
하며 for...toLoops: for...to Expression 루프 변수 값의 범위에 대해 루프를 반복하는 데 사용되는 for...to 식에 대해 설명합니다.Describes the for...to expression, which is used to iterate in a loop over a range of values of a loop variable.
하며 for...inLoops: for...in Expression 범위 식, 시퀀스, 목록, 배열, 열거형을 지원하는 기타 구문 등 열거 가능한 컬렉션에서 특정 패턴의 일치를 반복하는 데 사용되는 루프 구문인 for...in 식에 대해 설명합니다.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.
하며 while...doLoops: while...do Expression 지정된 테스트 조건이 참인 동안 반복 실행(루프)을 수행하는 데 사용되는 while...do 식에 대해 설명합니다.Describes the while...do expression, which is used to perform iterative execution (looping) while a specified test condition is true.
개체 식Object Expressions 동적으로 생성된 익명 개체 형식의 새 인스턴스를 만드는 개체 식에 대해 설명합니다. 익명 개체 형식은 기존의 기본 형식, 인터페이스 또는 인터페이스의 집합을 기반으로 합니다.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.
Lazy 식Lazy Expressions 즉시 계산 되지 않고 결과가 실제로 필요할 때 평가 되는 계산 인 지연 식에 대해 설명 합니다.Describes lazy expressions, which are computations that are not evaluated immediately, but are instead evaluated when the result is actually needed.
계산 식Computation Expressions 제어 흐름 구문 및 바인딩을 사용하여 순차화하고 결합할 수 있는 계산을 작성하도록 간편한 구문을 제공하는 F#의 계산 식에 대해 설명합니다.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. 함수형 프로그램에서 데이터, 컨트롤 및 부작용을 관리하는 데 사용할 수 있는 함수형 프로그래밍 기능인 monads에 대한 간편한 구문을 제공하는 데 사용할 수 있습니다.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. 계산 식의 한 가지 형식인 비동기 워크플로는 비동기 및 병렬 계산을 지원합니다.One type of computation expression, the asynchronous workflow, provides support for asynchronous and parallel computations. 자세한 내용은 비동기 워크플로를 참조하세요.For more information, see Asynchronous Workflows.
비동기 워크플로Asynchronous Workflows 동기 코드를 자연스럽게 작성하는 방식과 매우 유사한 방식으로 비동기 코드를 작성할 수 있도록 하는 언어 기능인 비동기 워크플로에 대해 설명합니다.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.
코드 인용Code Quotations F# 코드 식을 프로그래밍 방식으로 생성하여 사용할 수 있도록 지원하는 언어 기능인 코드 인용에 대해 설명합니다.Describes code quotations, a language feature that enables you to generate and work with F# code expressions programmatically.
쿼리 식Query Expressions F#의 LINQ를 구현하고 데이터 원본 또는 열거 가능한 컬렉션에 대한 쿼리를 작성할 수 있도록 지원하는 언어 기능인 쿼리 식에 대해 설명합니다.Describes query expressions, a language feature that implements LINQ for F# and enables you to write queries against a data source or enumerable collection.

컴파일러 지원 구문Compiler-supported Constructs

다음 표에는 특별한 컴파일러 지원 구문을 설명하는 항목이 나와 있습니다.The following table lists topics that describe special compiler-supported constructs.

항목Topic 설명Description
컴파일러 옵션Compiler Options F# 컴파일러에 대한 명령줄 옵션에 대해 설명합니다.Describes the command-line options for the F# compiler.
컴파일러 지시문Compiler Directives 처리기 지시문 및 컴파일러 지시문에 대해 설명합니다.Describes processor directives and compiler directives.
소스 줄, 파일 및 경로 식별자Source Line, File, and Path Identifiers 코드의 소스 줄 번호, 디렉터리 및 파일 이름에 액세스할 수 있도록 지원하는 기본 제공 값인 __LINE__, __SOURCE_DIRECTORY____SOURCE_FILE__ 식별자에 대해 설명합니다.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.

참고자료See also