F# 의 여러 구문에 사용할 수 있는 구문에는 자세한 구문 과 간단한 구문이라는 두 가지 형식의 구문이 있습니다. 자세한 구문은 일반적으로 사용되지 않지만 들여쓰기를 덜 민감하게 하는 이점이 있습니다. 간단한 구문은 더 짧고 들여쓰기를 사용하여 구문의 시작과 끝을 신호로 표시하고 , end
in
등과 같은 begin
추가 키워드(keyword) 대신 신호를 줍니다. 기본 구문은 간단한 구문입니다. 이 항목에서는 간단한 구문을 사용할 수 없는 경우 F# 구문에 대한 구문에 대해 설명합니다. 자세한 구문은 항상 사용하도록 설정되므로 간단한 구문을 사용하도록 설정하더라도 일부 구문에 대해 자세한 구문을 계속 사용할 수 있습니다.
구문 테이블
다음 표에서는 두 폼 간에 차이가 있는 컨텍스트에서 F# 언어 구문에 대한 간단한 구문과 자세한 구문을 보여 줍니다. 이 표에서 꺾쇠 괄호(<>)는 사용자가 제공한 구문 요소를 묶습니다. 이러한 구문 내에서 사용되는 구문에 대한 자세한 내용은 각 언어 구문에 대한 설명서를 참조하세요.
언어 구문 |
간단한 구문 |
자세한 구문 |
복합 식 |
<expression1>
<expression2>
|
<expression1>; <expression2>
|
중첩된 let 바인딩
|
let f x =
let a = 1
let b = 2
x + a + b
|
let f x =
let a = 1 in
let b = 2 in
x + a + b
|
코드 블록 |
(
<expression1>
<expression2>
)
|
begin
<expression1>;
<expression2>;
end
|
'for... do' |
for counter = start to finish do
...
|
for counter = start to finish do
...
done
|
'while... do' |
while <condition> do
...
|
while <condition> do
...
done
|
'for... in' |
for var in start .. finish do
...
|
for var in start .. finish do
...
done
|
'do' |
do
...
|
do
...
in
|
레코드 |
type <record-name> =
{
<field-declarations>
}
<value-or-member-definitions>
|
type <record-name> =
{
<field-declarations>
}
with
<value-or-member-definitions>
end
|
클래스 |
type <class-name>(<params>) =
...
|
type <class-name>(<params>) =
class
...
end
|
structure |
[<StructAttribute>]
type <structure-name> =
...
|
type <structure-name> =
struct
...
end
|
차별된 공용 구조체 |
type <union-name> =
| ...
| ...
...
<value-or-member definitions>
|
type <union-name> =
| ...
| ...
...
with
<value-or-member-definitions>
end
|
interface |
type <interface-name> =
...
|
type <interface-name> =
interface
...
end
|
개체 식 |
{ new <type-name>
with
<value-or-member-definitions>
<interface-implementations>
}
|
{ new <type-name>
with
<value-or-member-definitions>
end
<interface-implementations>
}
|
인터페이스 구현 |
interface <interface-name>
with
<value-or-member-definitions>
|
interface <interface-name>
with
<value-or-member-definitions>
end
|
형식 확장 |
type <type-name>
with
<value-or-member-definitions>
|
type <type-name>
with
<value-or-member-definitions>
end
|
모듈(module) |
module <module-name> =
...
|
module <module-name> =
begin
...
end
|
참고 항목