F# 대화형은 무엇인가요?
애플리케이션을 만들고, 패키징하고, 배포하는 프로세스를 진행하고 싶지 않은 경우가 있습니다. F# 대화형은 대화형 프로그래밍 및 스크립팅 환경입니다. 콘솔이나 독립 실행형 스크립트 파일을 통해 실시간으로 코드를 쓰고 계산할 수 있도록 하여 아이디어를 코드로 간단하게 만들 수 있습니다.
F# 대화형 시작하기
F# 대화형은 .NET SDK에 기본 제공됩니다. .NET CLI dotnet fsi
명령을 사용하여 시작할 수 있습니다.
dotnet fsi
읽기-계산-인쇄-루프(REPL)
F# 대화형을 시작하면 F# 코드를 쓰고 콘솔에서 해당 출력을 즉시 계산할 수 있는 REPL(읽기-평가-계산-루프) 세션이 시작됩니다.
Microsoft (R) F# Interactive version 11.4.2.0 for F# 5.0
Copyright (c) Microsoft Corporation. All Rights Reserved.
For help type #help;;
>
식 실행 및 계산
입력을 계산하려면 >
문자 뒤에 입력해야 합니다.
> #help;;
예를 들어 #help
명령을 실행하면 출력에 F# 대화형 도움말 메뉴가 표시됩니다.
F# Interactive directives:
#r "file.dll";; // Reference (dynamically load) the given DLL
#i "package source uri";; // Include package source uri when searching for packages
#I "path";; // Add the given search path for referenced DLLs
#load "file.fs" ...;; // Load the given file(s) as if compiled and referenced
#time ["on"|"off"];; // Toggle timing on/off
#help;; // Display help
#r "nuget:FSharp.Data, 3.1.2";; // Load Nuget Package 'FSharp.Data' version '3.1.2'
#r "nuget:FSharp.Data";; // Load Nuget Package 'FSharp.Data' with the highest version
#quit;; // Exit
F# Interactive command line options:
See 'dotnet fsi --help' for options
식의 끝은 ;;
문자로 구분됩니다. ;;
문자를 입력할 때까지 코드가 계산되지 않습니다. 이 구조는 코드가 줄 바꿈 문자로 구분되지 않으므로 여러 줄 식을 쓸 때 유용합니다.
F# 코드를 계산하는 방식은 동일합니다. 다음 코드는 콘솔에 메시지를 인쇄합니다.
> printfn "Hello World!";;
평가된 출력은 다음과 같습니다.
Hello World!
val it : unit = ()
첫 번째 줄은 계산된 코드의 출력을 표시하는 반면 두 번째 줄에는 출력의 형식 정보가 표시됩니다. 이 경우 콘솔에 출력되는 값은 ()
토큰으로 표시되고 it
이름에 바인딩되는 unit
형식입니다. 더 많은 작업을 수행하려면 이후에 프로그램에서 it
값에 액세스할 수 있습니다.
REPL 종료
F# 대화형 REPL 사용이 끝나면 #q
또는 #quit
명령을 사용하여 종료합니다.
> #q;;
fsx 스크립트 파일
더 많은 코드를 쓸 때 fsx 파일 확장을 사용하여 스크립트에 코드를 저장할 수 있습니다.
콘솔에 메시지를 인쇄하는 것과 동일한 예제를 사용하는 경우 my-script .fsx라는 파일을 만들어 내 코드를 쓸 수 있습니다.
printfn "Hello World!"
하지만 .fsx 파일에서는 식의 끝에서 더 이상 ;;
을 사용할 필요가 없다는 점을 기억해야 합니다. 스크립트 파일에서 F# 대화형이 들여쓰기 및 줄 바꿈 같은 표준 F# 코드 형식 지정 지침을 사용할 수 있기 때문에 필요하지 않습니다.
소스 코드를 컴파일한 다음 나중에 컴파일된 어셈블리를 실행하는 대신 dotnet fsi
을(를) 실행하고 F# 코드가 포함된 스크립트 파일의 이름을 지정할 수 있습니다. F# 대화형은 코드를 읽고 실시간으로 실행합니다.
dotnet fsi my-script.fsx
이 스크립트를 실행하면 다음과 같은 출력이 생성됩니다.
Hello World!