F# 대화형 옵션
이 문서에서는 F# Interactive에서 지원하는 명령줄 옵션에 대해 fsi.exe
설명합니다. F# Interactive는 F# 컴파일러와 동일한 많은 명령줄 옵션을 허용하지만 몇 가지 추가 옵션도 허용합니다.
스크립팅에 F# Interactive 사용
F# Interactive는 dotnet fsi
대화형으로 시작하거나 명령줄에서 시작하여 스크립트를 실행할 수 있습니다. 명령줄 구문은 입니다.
dotnet fsi [options] [ script-file [arguments] ]
F# 스크립트 파일의 파일 확장명은 .입니다 .fsx
.
F# 대화형 옵션 표
다음 표에는 F# Interactive에서 지원하는 옵션이 요약되어 있습니다. 명령줄 또는 Visual Studio IDE를 통해 이러한 옵션을 설정할 수 있습니다. Visual Studio IDE에서 이러한 옵션을 설정하려면 도구 메뉴를 열고 옵션을 선택하고 F# 도구 노드를 확장한 다음 F# 대화형을 선택합니다.
목록이 F# 대화형 옵션 인수에 표시되는 경우 목록 요소는 세미콜론(;
)으로 구분됩니다.
옵션 | 설명 |
---|---|
-- | F# Interactive에 다시 기본 인수를 F# 프로그램 또는 스크립트에 대한 명령줄 인수로 처리하도록 지시하는 데 사용됩니다. 이 인수는 목록 fsi를 사용하여 코드에서 액세스할 수 있습니다. CommandLineArgs. |
--검사ed[+|-] | fsc.exe 컴파일러 옵션과 동일합니다. 자세한 내용은 컴파일러 옵션을 참조하세요. |
--codepage:<int> | fsc.exe 컴파일러 옵션과 동일합니다. 자세한 내용은 컴파일러 옵션을 참조하세요. |
--consolecolors[+|-] | 경고 및 오류 메시지를 색으로 출력합니다. |
**--compilertool:<extensionsfolder> | 디자인 타임 도구(짧은 형식: -t)가 포함된 어셈블리 또는 디렉터리를 참조합니다. |
--crossoptimize[+|-] | 모듈 간 최적화를 사용하거나 사용하지 않도록 설정합니다. |
--debug[+|-] --debug:[전체|pdbonly|이식 가능한|포함] -g[+|-] -g:[전체|pdbonly|이식 가능한|포함] |
fsc.exe 컴파일러 옵션과 동일합니다. 자세한 내용은 컴파일러 옵션을 참조하세요. |
--define:<string> | fsc.exe 컴파일러 옵션과 동일합니다. 자세한 내용은 컴파일러 옵션을 참조하세요. |
--deterministic[+|-] | 결정적 어셈블리(모듈 버전 GUID 및 타임스탬프 포함)를 생성합니다. |
--Exec | 파일을 로드하거나 명령줄에 지정된 스크립트 파일을 실행한 후 F# 대화형으로 종료하도록 지시합니다. |
--fullpaths | fsc.exe 컴파일러 옵션과 동일합니다. 자세한 내용은 컴파일러 옵션을 참조하세요. |
--gui[+|-] | Windows Forms 이벤트 루프를 사용하거나 사용하지 않도록 설정합니다. 기본값은 사용입니다. |
--help -? |
명령줄 구문과 각 옵션에 대한 간략한 설명을 표시하는 데 사용됩니다. |
--lib:<folder-list> -I:<folder-list> |
fsc.exe 컴파일러 옵션과 동일합니다. 자세한 내용은 컴파일러 옵션을 참조하세요. |
--load:<filename> | 시작 시 지정된 소스 코드를 컴파일하고 컴파일된 F# 구문을 세션에 로드합니다. |
--mlcompatibility | fsc.exe 컴파일러 옵션과 동일합니다. 자세한 내용은 컴파일러 옵션을 참조하세요. |
--noframework | fsc.exe 컴파일러 옵션과 동일합니다. 자세한 내용은 컴파일러 옵션을 참조 하세요. |
--nologo | fsc.exe 컴파일러 옵션과 동일합니다. 자세한 내용은 컴파일러 옵션을 참조하세요. |
--nowarn:<warning-list> | fsc.exe 컴파일러 옵션과 동일합니다. 자세한 내용은 컴파일러 옵션을 참조하세요. |
--optimize[+|-] | fsc.exe 컴파일러 옵션과 동일합니다. 자세한 내용은 컴파일러 옵션을 참조하세요. |
--preferreduilang:<lang> | 기본 출력 언어 문화권 이름(예: es-ES, ja-JP)을 지정합니다. |
--조용한 | stdout 스트림에 대한 F# Interactive의 출력을 표시하지 않습니다. |
--quotations-debug | F# 따옴표 리터럴 및 반영된 정의에서 파생된 식에 대해 추가 디버깅 정보를 내보내야 되도록 지정합니다. 디버그 정보는 F# 식 트리 노드의 사용자 지정 특성에 추가됩니다. 코드 따옴표 및 Expr.CustomAttributes를 참조하세요. |
--readline[+|-] | 대화형 모드에서 탭 완성을 사용하거나 사용하지 않도록 설정합니다. |
--reference:<filename> -r:<filename> |
fsc.exe 컴파일러 옵션과 동일합니다. 자세한 내용은 컴파일러 옵션을 참조하세요. |
--tailcalls[+|-] | tail IL 명령을 사용하거나 사용하지 않도록 설정하면 스택 프레임이 비상 재귀 함수에 재사용됩니다. 기본적으로 이 옵션은 사용하도록 설정됩니다. |
--targetprofile:<string> | 이 어셈블리의 대상 프레임워크 프로필을 지정합니다. 유효한 값은 mscorlib , netcore 또는 netstandard 입니다. 기본값은 mscorlib 입니다. |
--use:<filename> | 시작 시 지정된 파일을 초기 입력으로 사용하도록 인터프리터에 지시합니다. |
--utf8output | fsc.exe 컴파일러 옵션과 동일합니다. 자세한 내용은 컴파일러 옵션을 참조하세요. |
--warn:<warning-level> | fsc.exe 컴파일러 옵션과 동일합니다. 자세한 내용은 컴파일러 옵션을 참조하세요. |
--warnaserror[+|-] | fsc.exe 컴파일러 옵션과 동일합니다. 자세한 내용은 컴파일러 옵션을 참조하세요. |
--warnaserror[+|-]:<int-list> | fsc.exe 컴파일러 옵션과 동일합니다. 자세한 내용은 컴파일러 옵션을 참조하세요. |
F# 대화형 구조적 인쇄
F# Interactive(dotnet fsi
)는 구조화된 일반 텍스트 서식의 확장 버전을 사용하여 값을 보고합니다 .
일반 텍스트 서식의
%A
모든 기능이 지원되며 일부는 추가로 사용자 지정할 수 있습니다.출력 콘솔에서 색을 지원하는 경우 인쇄 색이 지정됩니다.
명시적으로 해당 문자열을 평가하지 않는 한 표시되는 문자열의 길이에 제한이 적용됩니다.
사용자 정의 설정 집합은 개체를
fsi
통해 사용할 수 있습니다.
보고된 값에 대한 일반 텍스트 인쇄를 사용자 지정하는 데 사용할 수 있는 설정은 다음과 같습니다.
open System.Globalization
fsi.FormatProvider <- CultureInfo("de-DE") // control the default culture for primitives
fsi.PrintWidth <- 120 // Control the width used for structured printing
fsi.PrintDepth <- 10 // Control the maximum depth of nested printing
fsi.PrintLength <- 10 // Control the length of lists and arrays
fsi.PrintSize <- 100 // Control the maximum overall object count
fsi.ShowProperties <- false // Control whether properties of .NET objects are shown by default
fsi.ShowIEnumerable <- false // Control whether sequence values are expanded by default
fsi.ShowDeclarationValues <- false // Control whether values are shown for declaration outputs
다음을 사용하여 AddPrinter
사용자 지정 AddPrintTransformer
F# 대화형 출력의 인쇄는 사용 및 fsi.AddPrintTransformer
을 사용하여 fsi.AddPrinter
사용자 지정할 수 있습니다.
첫 번째 함수는 개체의 인쇄를 바꿀 텍스트를 제공합니다. 두 번째 함수는 대신 표시할 서로게이트 개체를 반환합니다. 예를 들어 다음 F# 코드를 고려합니다.
open System
fsi.AddPrinter<DateTime>(fun dt -> dt.ToString("s"))
type DateAndLabel =
{ Date: DateTime
Label: string }
let newYearsDay1999 =
{ Date = DateTime(1999, 1, 1)
Label = "New Year" }
F# Interactive에서 예제를 실행하면 서식 옵션 집합에 따라 출력됩니다. 이 경우 날짜 및 시간의 서식에 영향을 줍니다.
type DateAndLabel =
{ Date: DateTime
Label: string }
val newYearsDay1999 : DateAndLabel = { Date = 1999-01-01T00:00:00
Label = "New Year" }
fsi.AddPrintTransformer
를 사용하여 인쇄할 서로게이트 개체를 제공할 수 있습니다.
type MyList(values: int list) =
member _.Values = values
fsi.AddPrintTransformer(fun (x:MyList) -> box x.Values)
let x = MyList([1..10])
이 출력은 다음과 같습니다.
val x : MyList = [1; 2; 3; 4; 5; 6; 7; 8; 9; 10]
변환기 함수를 전달하여 fsi.AddPrintTransformer
반환 null
하면 인쇄 변환기가 무시됩니다.
형식으로 시작하여 obj
입력 값을 필터링하는 데 사용할 수 있습니다. 예시:
fsi.AddPrintTransformer(fun (x:obj) ->
match x with
| :? string as s when s = "beep" -> box ["quack"; "quack"; "quack"]
| _ -> null)
let y = "beep"
이 출력은 다음과 같습니다.
val y : string = ["quack"; "quack"; "quack"]
관련 항목
제목 | 설명 |
---|---|
컴파일러 옵션 | F# 컴파일러, fsc.exe 사용할 수 있는 명령줄 옵션에 대해 설명합니다. |
.NET