트랙
/
Elm
Elm
/
연습 문제
/
트랙 위의 트랙 위의 트랙
트랙 위의 트랙 위의 트랙

트랙 위의 트랙 위의 트랙

학습 연습 문제

소개

배열

Elm의 List는 같은 타입의 값 0개 이상을 담는 불변 컬렉션이에요.

배열은 다음과 같이 정의할 수 있어요:

empty = []
singleValue = [ 5 ]
threeValues = [ "a", "b", "c" ]

배열에 원소를 추가하는 가장 흔한 방법은 :: (cons) 연산자를 사용하는 거예요:

twoToFour = [ 2, 3, 4 ]
oneToFour = 1 :: twoToFour --> [ 1, 2, 3, 4 ]

배열은 List 모듈에 정의된 함수와 연산자로 다루거나 패턴 매칭으로 다뤄요.

describe : List String -> String
describe list =
    case list of
        [] ->
            "Empty list"

        [ "hello" ] ->
            "Singleton list with: hello"

        x :: xs ->
            "Non-empty list with head: " ++ x

describe []                   --> "Empty list"
describe [ "hello" ]          --> "Singleton list with: hello"
describe [ "hello", "world" ] --> "Non-empty list with head: hello"

지침

이 연습 문제에서는 Exercism에서 배우고 싶은 프로그래밍 언어 목록을 관리하는 코드를 작성해요. 여섯 개의 과제가 있고, 모두 배열을 다루는 내용이에요.

1. 새 배열 만들기

배우고 싶은 언어를 관리하려면 새 배열을 만들어야 해요. 비어 있는 새 배열을 담는 newList 상수를 정의해요.

newList
    --> []

2. 기존 배열 정의하기

지금은 배우고 싶은 언어가 적힌 종이 한 장이 있어요: Elm, Clojure, Haskell. 이 배열을 나타내는 existingList 상수를 정의해요.

existingList
    --> [ "Elm", "Clojure", "Haskell" ]

3. 배열에 새 언어 추가하기

Exercism을 둘러보다가 더 흥미로운 언어를 발견하면, 그 언어를 배열에 추가하고 싶어질 거예요. addLanguage 함수를 구현해서 배열 맨 앞에 새 언어를 추가해요.

addLanguage "TypeScript" [ "JavaScript", "CoffeeScript" ]
    --> [ "TypeScript", "JavaScript", "CoffeeScript" ]

4. 배열에 있는 언어 개수 세기

언어를 하나하나 직접 세는 건 번거로워요. countLanguages 함수를 구현해서 배열에 있는 언어의 개수를 세어요.

countLanguages [ "C#", "Racket", "Rust", "Ruby" ]
    --> 4

5. 배열 뒤집기

어느 순간, 배열이 사실 거꾸로 정렬되어 있다는 걸 깨닫게 돼요! reverseList 함수를 구현해서 배열을 뒤집어요.

reverseList [ "Prolog", "C", "Idris", "Assembly" ]
    --> [ "Assembly", "Idris", "C", "Prolog" ]

6. 배열이 흥미진진한지 확인하기

모든 언어를 사랑하지만, Elm은 마음속에 특별한 자리를 차지하고 있어요. 그래서 다음과 같은 언어 배열이면 정말 신나요:

  • 배열의 첫 번째 항목이 Elm이에요.
  • 또는 배열의 두 번째 항목이 Elm이고 배열에 언어가 세 개 이하로 들어 있어요.

excitingList 함수를 구현해서 언어 배열이 흥미진진한지 확인해요:

excitingList [ "Nim", "Elm" ]
    --> True
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Elm Exercism

트랙 위의 트랙 위의 트랙 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Elm 트랙을 개념 28개연습 문제 110개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.