Visual Studio Code에서 F# 시작

Ionide 플러그 인사용하여 Visual Studio Code에서 F#을 작성하여 IntelliSense 및 코드 리팩터링으로 뛰어난 플랫폼 간 경량 IDE(통합 개발 환경) 환경을 얻을 수 있습니다. 플러그 인에 대해 자세히 알아보려면 Ionide.io 방문하세요.

시작하려면 F# 및 Ionide 플러그 인이 올바르게 설치되어 있는지 확인 합니다.

Ionide를 사용하여 첫 번째 프로젝트 만들기

새 F# 프로젝트를 만들려면 명령줄을 열고 .NET CLI를 사용하여 새 프로젝트를 만듭니다.

dotnet new console -lang "F#" -o FirstIonideProject

완료되면 디렉터리를 프로젝트로 변경하고 Visual Studio Code를 엽니다.

cd FirstIonideProject
code .

Visual Studio Code에서 프로젝트가 로드되면 창 왼쪽에 F# 솔루션 탐색기 창이 열립니다. 즉, Ionide가 방금 만든 프로젝트를 성공적으로 로드했습니다. 이 시점 이전에 편집기에서 코드를 작성할 수 있지만, 이 작업이 수행되면 모든 항목의 로드가 완료됩니다.

첫 번째 스크립트 작성

.NET Core 스크립팅을 사용하도록 Visual Studio Code를 구성한 후 Visual Studio Code의 탐색기 보기로 이동하여 새 파일을 만듭니다. 이름을 MyFirstScript.fsx로 지정합니다.

이제 다음 코드를 추가합니다.

let toPigLatin (word: string) =
    let isVowel (c: char) =
        match c with
        | 'a' | 'e' | 'i' | 'o' | 'u'
        | 'A' | 'E' | 'I' | 'O' | 'U' -> true
        |_ -> false
    
    if isVowel word[0] then
        word + "yay"
    else
        word[1..] + string(word[0]) + "ay"

이 함수는 단어를 Pig Latin 형식으로 변환합니다. 다음 단계는 FSI(F# Interactive)를 사용하여 평가하는 것입니다.

전체 함수를 강조 표시합니다(길이는 11줄이어야 합니다). 강조 표시되면 Alt 키를 누른 상태로 Enter 키를 누릅니. 화면 아래쪽에 터미널 창이 표시되며 다음과 유사하게 표시됩니다.

Example of F# Interactive output with Ionide

이것은 세 가지를했다 :

  1. FSI 프로세스를 시작했습니다.
  2. 강조 표시된 코드를 FSI 프로세스로 보냈습니다.
  3. FSI 프로세스는 사용자가 보낸 코드를 평가했습니다.

보낸 것이 함수이기 때문에 이제 FSI를 사용하여 해당 함수를 호출할 수 있습니다. 대화형 창에 다음을 입력합니다.

toPigLatin "banana";;

다음 결과가 표시됩니다.

val it: string = "ananabay"

이제 모음을 첫 글자로 사용해 보겠습니다. 다음을 입력합니다.

toPigLatin "apple";;

다음 결과가 표시됩니다.

val it: string = "appleyay"

함수가 예상대로 작동하는 것처럼 보입니다. 축하합니다. Visual Studio Code에서 첫 번째 F# 함수를 작성하고 FSI로 평가했습니다.

참고 항목

알아차렸을 수 있듯이 FSI의 줄은 .로 ;;종료됩니다. FSI를 사용하면 여러 줄을 입력할 수 있기 때문입니다. 끝부분에는 ;; 코드가 완료된 시기를 FSI가 알 수 있습니다.

코드 설명

코드가 실제로 수행하는 작업을 잘 모르는 경우 단계별로 설명합니다.

toPigLatin 듯이 단어를 입력으로 사용하여 해당 단어의 Pig-Latin 표현으로 변환하는 함수입니다. 이에 대한 규칙은 다음과 같습니다.

단어의 첫 번째 문자가 모음으로 시작하는 경우 단어 끝에 "yay"를 추가합니다. 모음으로 시작하지 않는 경우 첫 번째 문자를 단어의 끝으로 이동하고 "ay"를 추가합니다.

FSI에서 다음을 확인할 수 있습니다.

val toPigLatin: word: string -> string

이는 toPigLatin 입력(호출word)으로 사용하고 다른 string함수를 string 반환하는 함수입니다. 이를 함수의 형식 서명이라고 하며 F# 코드를 이해하는 데 핵심적인 F#의 기본 부분입니다. Visual Studio Code의 함수를 마우스로 가리키면 이 사실을 알 수 있습니다.

함수 본문에는 다음과 같은 두 가지 개별 부분이 표시됩니다.

  1. 패턴 일치를 통해 제공된 패턴 중 하나와 일치하는지 검사 지정된 문자(c)가 모음인지 여부를 결정하는 내부 함수isVowel입니다.

    let isVowel (c: char) =
        match c with
        | 'a' | 'e' | 'i' | 'o' | 'u'
        | 'A' | 'E' | 'I' | 'O' | 'U' -> true
        |_ -> false
    
  2. if..then..else 첫 번째 문자가 모음인지 여부를 검사 첫 번째 문자가 모음인지 여부에 따라 입력 문자에서 반환 값을 생성하는 식입니다.

    if isVowel word[0] then
        word + "yay"
    else
        word[1..] + string(word[0]) + "ay"
    

흐름 toPigLatin 은 다음과 같습니다.

입력 단어의 첫 번째 문자가 모음인지 확인합니다. 이 경우 단어 끝에 "yay"를 첨부합니다. 그렇지 않으면 첫 번째 문자를 단어의 끝으로 이동하고 "ay"를 추가합니다.

F#에서는 함수에서 반환하는 명시적 명령이 없습니다. F#은 식 기반이고 함수 본문에서 계산된 마지막 식에 따라 해당 함수의 반환 값이 결정되기 때문입니다. if..then..else 자체 식이므로 블록 본문 또는 블록 본 then 문의 계산에 else 따라 함수에서 반환되는 값이 toPigLatin 결정됩니다.

콘솔 앱을 Pig Latin 생성기로 전환

이 문서의 이전 섹션에서는 F# 코드를 작성하는 일반적인 첫 번째 단계인 초기 함수를 작성하고 FSI를 사용하여 대화형으로 실행하는 것을 보여 줍니다. 이를 REPL 기반 개발이라고 하며, 여기서 REPL 은 "읽기-평가-인쇄 루프"를 의미합니다. 작동 중인 항목이 있을 때까지 기능을 실험하는 좋은 방법입니다.

REPL 기반 개발의 다음 단계는 작업 코드를 F# 구현 파일로 이동하는 것입니다. 그런 다음 F# 컴파일러에서 실행할 수 있는 어셈블리로 컴파일할 수 있습니다.

시작하려면 .NET CLI를 사용하여 이전에 만든 Program.fs 파일을 엽니다. 일부 코드가 이미 있는 것을 알 수 있습니다.

다음으로 호출 PigLatin 된 새 module 함수를 toPigLatin 만들고 앞에서 만든 함수를 다음과 같이 복사합니다.

module PigLatin =
    let toPigLatin (word: string) =
        let isVowel (c: char) =
            match c with
            | 'a' | 'e' | 'i' | 'o' | 'u'
            | 'A' | 'E' | 'I' | 'O' | 'U' -> true
            |_ -> false
        
        if isVowel word[0] then
            word + "yay"
        else
            word[1..] + string word[0] + "ay"

이 모듈은 함수 위 main 와 선언 아래에 open System 있어야 합니다. 선언 순서는 F#에서 중요하므로 파일에서 함수를 호출하기 전에 함수를 정의해야 합니다.

이제 함수에서 main 인수에 대해 Pig Latin 생성기 함수를 호출합니다.

[<EntryPoint>]
let main args =
    for arg in args do
        let newArg = PigLatin.toPigLatin arg
        printfn "%s in Pig Latin is: %s" arg newArg

    0

이제 명령줄에서 콘솔 앱을 실행할 수 있습니다.

dotnet run apple banana

그러면 스크립트 파일과 동일한 결과가 출력되지만 이번에는 실행 중인 프로그램으로 표시됩니다.

Ionide 문제 해결

다음은 발생할 수 있는 특정 문제를 해결할 수 있는 몇 가지 방법입니다.

  1. Ionide의 코드 편집 기능을 얻으려면 F# 파일을 디스크에 저장하고 Visual Studio Code 작업 영역에서 열려 있는 폴더 내부에 저장해야 합니다.
  2. Visual Studio Code를 열어 시스템을 변경했거나 Ionide 필수 구성 요소를 설치한 경우 Visual Studio Code를 다시 시작합니다.
  3. 프로젝트 디렉터리에 잘못된 문자가 있는 경우 Ionide가 작동하지 않을 수 있습니다. 이 경우 프로젝트 디렉터리 이름을 바꿉니다.
  4. Ionide 명령이 작동하지 않는 경우 Visual Studio Code 키 바인딩을 검사 실수로 재정의하는지 확인합니다.
  5. 컴퓨터에서 Ionide가 중단되고 위의 문제가 해결되지 않은 경우 컴퓨터에서 ionide-fsharp 디렉터리를 제거하고 플러그 인 제품군을 다시 설치해 보세요.
  6. 프로젝트를 로드하지 못한 경우(F# 솔루션 탐색기 표시됨) 해당 프로젝트를 마우스 오른쪽 단추로 클릭하고 세부 정보 보기를 클릭하여 자세한 진단 정보를 가져옵니다.

Ionide는 F# 커뮤니티의 구성원이 빌드하고 기본 오픈 소스 프로젝트입니다. 문제를 보고하고 ionide-vscode-fsharp GitHub 리포지토리에 자유롭게 참여할 수 있습니다.

Ionide Gitter 채널의 Ionide 개발자 및 F# 커뮤니티에서 추가 도움을 요청할 수도 있습니다.

다음 단계

F# 및 언어의 기능에 대해 자세히 알아보려면 F#둘러보기를 검사.