F #-기본 구문

F # 프로그램의 기본 구조를 살펴 보았으므로 F # 프로그래밍 언어의 다른 기본 구성 요소를 쉽게 이해할 수 있습니다.

F #의 토큰

F # 프로그램은 다양한 토큰으로 구성됩니다. 토큰은 키워드, 식별자, 상수, 문자열 리터럴 또는 기호 일 수 있습니다. F # 토큰을 두 가지 유형으로 분류 할 수 있습니다.

  • Keywords
  • 기호 및 연산자

F # 키워드

다음 표는 키워드와 키워드에 대한 간략한 설명을 보여줍니다. 다음 장에서 이러한 키워드의 사용에 대해 설명합니다.

예어 기술
abstract 선언 된 형식에 구현이 없거나 가상이고 기본 구현이있는 메서드를 나타냅니다.
and 상호 재귀 바인딩, 속성 선언 및 일반 매개 변수에 대한 여러 제약 조건에 사용됩니다.
as 현재 클래스 개체에 개체 이름을 지정하는 데 사용됩니다. 또한 패턴 일치 내에서 전체 패턴에 이름을 지정하는 데 사용됩니다.
assert 디버깅 중에 코드를 확인하는 데 사용됩니다.
base 기본 클래스 개체의 이름으로 사용됩니다.
begin 자세한 구문에서 코드 블록의 시작을 나타냅니다.
class 자세한 구문에서 클래스 정의의 시작을 나타냅니다.
default 추상 메서드의 구현을 나타냅니다. 가상 메서드를 만들기 위해 추상 메서드 선언과 함께 사용됩니다.
delegate 대리자를 선언하는 데 사용됩니다.
do 루핑 구문이나 명령형 코드를 실행하는 데 사용됩니다.
done 자세한 구문에서 루핑 표현식에서 코드 블록의 끝을 나타냅니다.
downcast 상속 체인에서 더 낮은 유형으로 변환하는 데 사용됩니다.
downto 안에 for 식, 역으로 계산할 때 사용됩니다.
elif 조건부 분기에 사용됩니다. else if의 짧은 형식입니다.
else 조건부 분기에 사용됩니다.
end

형식 정의 및 형식 확장에서 멤버 정의 섹션의 끝을 나타냅니다.

자세한 구문에서 begin 키워드로 시작하는 코드 블록의 끝을 지정하는 데 사용됩니다.

exception 예외 유형을 선언하는 데 사용됩니다.
extern 선언 된 프로그램 요소가 다른 바이너리 또는 어셈블리에 정의되어 있음을 나타냅니다.
false 부울 리터럴로 사용됩니다.
finally 예외 발생 여부에 관계없이 실행되는 코드 블록을 도입하려고 시도와 함께 사용됩니다.
for 반복 구조에 사용됩니다.
fun 익명 함수라고도하는 람다 식에 사용됩니다.
function 단일 인수에 대한 패턴 일치가있는 람다 식에서 fun 키워드 및 일치 식에 대한 더 짧은 대안으로 사용됩니다.
global 최상위 .NET 네임 스페이스를 참조하는 데 사용됩니다.
if 조건부 분기 구문에 사용됩니다.
in 시퀀스 식에 사용되며 자세한 구문에서 식과 바인딩을 구분하는 데 사용됩니다.
inherit 기본 클래스 또는 기본 인터페이스를 지정하는 데 사용됩니다.
inline 호출자의 코드에 직접 통합되어야하는 함수를 나타내는 데 사용됩니다.
interface 인터페이스를 선언하고 구현하는 데 사용됩니다.
internal 멤버가 어셈블리 내부에는 표시되지만 외부에는 표시되지 않도록 지정하는 데 사용됩니다.
lazy 결과가 필요할 때만 수행 할 계산을 지정하는 데 사용됩니다.
let 이름을 값 또는 함수에 연결하거나 바인딩하는 데 사용됩니다.
let! 비동기 워크 플로에서 이름을 비동기 계산 결과에 바인딩하거나 다른 계산 식에서 이름을 계산 유형 인 결과에 바인딩하는 데 사용됩니다.
match 값을 패턴과 비교하여 분기하는 데 사용됩니다.
member 객체 유형에서 속성 또는 메서드를 선언하는 데 사용됩니다.
module 이름을 관련 유형, 값 및 함수 그룹과 연결하여 다른 코드와 논리적으로 구분하는 데 사용됩니다.
mutable 변수, 즉 변경할 수있는 값을 선언하는 데 사용됩니다.
namespace 이름을 관련 유형 및 모듈 그룹과 연결하여 다른 코드와 논리적으로 구분하는 데 사용됩니다.
new

객체를 생성하거나 생성 할 수있는 생성자를 선언, 정의 또는 호출하는 데 사용됩니다.

또한 형식에 특정 생성자가 있어야 함을 나타 내기 위해 일반 매개 변수 제약 조건에서 사용됩니다.

not 실제로 키워드가 아닙니다. 그러나 조합되지 않은 구조체는 일반 매개 변수 제약 조건으로 사용됩니다.
null

개체가 없음을 나타냅니다.

일반 매개 변수 제약에도 사용됩니다.

of 구분 된 공용체에서 값 범주 유형을 나타 내기 위해 사용되며 대리자 및 예외 선언에서 사용됩니다.
open 자격없이 네임 스페이스 또는 모듈의 내용을 사용할 수 있도록하는 데 사용됩니다.
or

부울 또는 연산자로 부울 조건과 함께 사용됩니다. ||와 같습니다.

멤버 제약에도 사용됩니다.

override 기본 버전과 다른 추상 또는 가상 메서드 버전을 구현하는 데 사용됩니다.
private 멤버에 대한 액세스를 동일한 유형 또는 모듈의 코드로 제한합니다.
public 유형 외부에서 구성원에 대한 액세스를 허용합니다.
rec 함수가 재귀임을 나타내는 데 사용됩니다.
return 계산 식의 결과로 제공 할 값을 나타내는 데 사용됩니다.
return! 계산시 포함 된 계산 식의 결과를 제공하는 계산 식을 나타내는 데 사용됩니다.
select 추출 할 필드 또는 열을 지정하기 위해 쿼리 표현식에 사용됩니다. 이것은 문맥 키워드이므로 실제로 예약어가 아니며 적절한 문맥에서 키워드처럼 작동합니다.
static 형식의 인스턴스없이 호출 할 수있는 메서드 나 속성 또는 형식의 모든 인스턴스간에 공유되는 값 멤버를 나타내는 데 사용됩니다.
struct

구조 유형을 선언하는 데 사용됩니다.

일반 매개 변수 제약에도 사용됩니다.

모듈 정의에서 OCaml 호환성에 사용됩니다.

then

조건식에 사용됩니다.

또한 객체 생성 후 부작용을 수행하는 데 사용됩니다.

to 범위를 나타 내기 위해 for 루프에서 사용됩니다.
true 부울 리터럴로 사용됩니다.
try 예외를 생성 할 수있는 코드 블록을 도입하는 데 사용됩니다. with 또는 finally 와 함께 사용됩니다 .
type 클래스, 레코드, 구조, 구별 된 공용체, 열거 유형, 측정 단위 또는 유형 약어를 선언하는 데 사용됩니다.
upcast 상속 체인에서 더 높은 유형으로 변환하는 데 사용됩니다.
use 리소스를 해제하기 위해 Dispose를 호출해야하는 값에 대해 let 대신 사용됩니다.
use! let 대신 사용! 리소스를 해제하기 위해 Dispose를 호출해야하는 값에 대한 비동기 워크 플로 및 기타 계산 식에서.
val 제한된 상황에서 값을 나타 내기 위해 서명에 사용되거나 멤버를 선언하는 형식에 사용됩니다.
void .NET void 유형을 나타냅니다. 다른 .NET 언어와 상호 운용 할 때 사용됩니다.
when 패턴 일치에 대한 부울 조건 (가드시) 에 사용되며 제네릭 유형 매개 변수에 대한 제약 조건 절을 도입합니다.
while 루핑 구조를 소개합니다.
with 패턴 일치 표현식에서 match 키워드와 함께 사용됩니다. 또한 멤버 정의를 도입하고 예외 처리기를 도입하기 위해 개체 식, 레코드 복사 식 및 형식 확장에 사용됩니다.
yield 시퀀스 값을 생성하기 위해 시퀀스 표현식에서 사용됩니다.
yield! 계산 표현식에서 주어진 계산 표현식의 결과를 포함하는 계산 표현식에 대한 결과 모음에 추가하는 데 사용됩니다.

일부 예약 키워드는 OCaml 언어에서 나왔습니다.

asr 나라 lor lsl lsr lxor 모드 시그

다른 일부 예약 된 키워드는 향후 F # 확장을 위해 유지됩니다.

원자 단절 확인 구성 요소 const 강제 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!