연습 - 함수 패턴
이 연습에서는 배운 기능 패턴 중 일부를 적용하는 데 초점을 둡니다. 또한 동료가 작성한 코드를 사용하여 파이프라인 연산자와 결합합니다.
앱 만들기
앞서 언급했듯이, 동료가 코드를 작성했습니다. 다음과 같습니다.
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
이 코드는 카드 게임을 구현하는 데 도움이 되는 여러 부분으로 구성되어 있습니다. 그렇다면 무엇을 해야 하나요? 해야 하는 일은 카드의 데크를 사용하여, 순서를 섞은 다음, 세 개의 상위 카드로 결과를 출력하는 것입니다.
다음을 사용하여 새 프로젝트를 만듭니다.
dotnet new console --language F# -o Cards cd Cards
Program.fs 파일의 코드를 제공된 코드로 바꿉니다.
끝에 다음 줄을 추가하여 파이프라인을 생성합니다.
cards |> shuffle |> take 3 |> printAll
이 코드는 왼쪽에서 오른쪽 순서로 함수
shuffle()
,take()
,printAll()
을 호출합니다. 출력 결과는shuffle()
메서드에 임의 요소가 사용되었기 때문에 달라집니다.dotnet run
을 호출하여 프로젝트를 실행합니다.dotnet run
적절한 설명 및 짝패와 함께 세 개의 카드가 출력되는 것을 볼 수 있습니다. 예를 들면 예제 출력은 다음과 같습니다.
Ace of Hearts 9 of Hearts 7 of Hearts
축하합니다! 팀과 함께 카드 애플리케이션을 빌드했습니다. 또한 순서대로 함수를 호출할 수 있는 파이프라인을 적용했습니다. 여기서 모든 함수는 카드 목록에 적용됩니다.