다음을 통해 공유


Visual Studio Code에서 F# 시작하기 방법

Visual Studio Code에서 Ionide 플러그인을 사용하여 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키를 누르세요. 화면 아래쪽에 터미널 창이 표시되며 다음과 유사하게 표시됩니다.

Ionide 사용한 F# 대화형 출력의 예

이것은 세 가지를했다 :

  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이(가) string을(를) 입력으로 받아(word라고 부름) 다른 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 "읽기Evaluate-Print 루프"를 의미합니다. 작동 중인 항목이 있을 때까지 기능을 실험하는 좋은 방법입니다.

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#둘러보기를 확인하세요.