Percursos
/
Elm
Elm
/
Exercícios
/
Tracks on Tracks on Tracks
Tracks on Tracks on Tracks

Tracks on Tracks on Tracks

Exercício de aprendizagem

Introdução

Listas

Uma List em Elm é uma coleção imutável de zero ou mais valores do mesmo tipo.

Podes definir listas da seguinte forma:

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

A forma mais comum de adicionar um elemento a uma lista é através do operador :: (cons):

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

As listas são manipuladas por funções e operadores definidos no módulo List ou por correspondência de padrões.

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"

Instruções

Neste exercício vais escrever código para acompanhar uma lista de linguagens de programação que queres aprender no Exercism. Tens seis tarefas, e todas elas implicam lidar com listas.

1. Cria uma nova lista

Para acompanhares as linguagens que queres aprender, vais precisar de criar uma nova lista. Define a constante newList, que contém uma nova lista vazia.

newList
    --> []

2. Define uma lista existente

Neste momento, tens uma folha de papel com as linguagens que queres aprender: Elm, Clojure e Haskell. Define a constante existingList para representar esta lista.

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

3. Adiciona uma nova linguagem a uma lista

À medida que exploras o Exercism e encontras linguagens mais interessantes, vais querer adicioná-las à tua lista. Implementa a função addLanguage para adicionar uma nova linguagem ao início da tua lista.

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

4. Conta as linguagens da lista

Contar as linguagens à mão é incómodo. Implementa a função countLanguages para contar o número de linguagens da tua lista.

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

5. Inverte a lista

A certa altura, dás conta de que a tua lista está, na verdade, ordenada ao contrário! Implementa a função reverseList para inverter a tua lista.

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

6. Verifica se a lista é entusiasmante

Embora gostes de todas as linguagens, o Elm tem um lugar especial no teu coração. Por isso, ficas mesmo entusiasmado com uma lista de linguagens se:

  • O primeiro elemento da lista for o Elm.
  • Ou o segundo elemento da lista for o Elm e a lista contiver três linguagens ou menos.

Implementa a função excitingList para verificar se uma lista de linguagens é entusiasmante:

excitingList [ "Nim", "Elm" ]
    --> True
Editar via GitHub A ligação abre numa nova janela ou separador
Elm Exercism

Estás pronto para começar Tracks on Tracks on Tracks?

Inscreve-te no Exercism para aprenderes e dominares Elm com 28 conceitos110 exercícios, e mentoria humana real, tudo grátis.