연습 - 함수 패턴

완료됨

이 연습에서는 배운 기능 패턴 중 일부를 적용하는 데 초점을 둡니다. 또한 동료가 작성한 코드를 사용하여 파이프라인 연산자와 결합합니다.

앱 만들기

앞서 언급했듯이, 동료가 코드를 작성했습니다. 다음과 같습니다.

let cards = [21; 3; 1; 7; 9; 23]
let cardFace card = 
    let no = card % 13
    if no = 1 then "Ace"
    elif no = 0 then "King"
    elif no = 12 then "Queen"
    elif no = 11 then "Jack"
    else string no

let suit card =
    let no = card / 13
    if no = 0 then "Hearts"
    elif no = 1 then "Spades"
    elif no = 2 then "Diamonds"
    else "Clubs"

let shuffle list =
    let random = System.Random()
    list |> List.sortBy (fun x -> random.Next())

let printCard card = printfn "%s of %s" (cardFace card) (suit card)

let printAll list = List.iter(fun x -> printCard(x)) list

let take (no:int) (list) = List.take no list 

이 코드는 카드 게임을 구현하는 데 도움이 되는 여러 부분으로 구성되어 있습니다. 그렇다면 무엇을 해야 하나요? 해야 하는 일은 카드의 데크를 사용하여, 순서를 섞은 다음, 세 개의 상위 카드로 결과를 출력하는 것입니다.

  1. 다음을 사용하여 새 프로젝트를 만듭니다.

    dotnet new console --language F# -o Cards
    cd Cards
    
  2. Program.fs 파일의 코드를 제공된 코드로 바꿉니다.

  3. 끝에 다음 줄을 추가하여 파이프라인을 생성합니다.

    cards |> shuffle |> take 3 |> printAll
    

    이 코드는 왼쪽에서 오른쪽 순서로 함수 shuffle(), take(), printAll()을 호출합니다. 출력 결과는 shuffle() 메서드에 임의 요소가 사용되었기 때문에 달라집니다.

  4. dotnet run을 호출하여 프로젝트를 실행합니다.

    dotnet run
    

    적절한 설명 및 짝패와 함께 세 개의 카드가 출력되는 것을 볼 수 있습니다. 예를 들면 예제 출력은 다음과 같습니다.

    Ace of Hearts
    9 of Hearts
    7 of Hearts
    

축하합니다! 팀과 함께 카드 애플리케이션을 빌드했습니다. 또한 순서대로 함수를 호출할 수 있는 파이프라인을 적용했습니다. 여기서 모든 함수는 카드 목록에 적용됩니다.