Trilhas
/
Clojure
Clojure
/
Exercícios
/
Tracks on Tracks on Tracks
Tracks on Tracks on Tracks

Tracks on Tracks on Tracks

Exercício de aprendizagem

Introdução

Em Clojure, as listas são coleções, assim como as listas em outras linguagens. Como em outras linguagens da família Lisp, Clojure usa parênteses para expressar listas.

As listas em Clojure podem ser criadas de duas maneiras. A função list pode criar uma lista, ou você pode aplicar quote a uma lista literal.

As listas são especiais porque Clojure as trata como chamadas. Ele espera que a chamada comece com um operador, que geralmente é uma função. Os itens restantes da lista são considerados operandos, ou seja, eles se tornam os argumentos da função.

É justamente por causa desse tratamento especial que Clojure dá às listas que não podemos criar uma lista literal diretamente. Usar quote em uma lista, ou seu atalho ', indica que a lista não deve ser avaliada.

Diferente de algumas linguagens modernas, as listas em Clojure são heterogêneas, ou seja, podem conter vários tipos de item internamente, por exemplo: '(2 "a" "b" 3). Diferente de outros Lisps, uma lista vazia em Clojure é considerada verdadeira e não é equivalente a nil ou false.

Instruções

Neste exercício, você vai escrever código para processar uma lista de linguagens de programação que pretende praticar na plataforma Exercism.

Você tem seis tarefas.

1. Crie uma nova lista

Antes de adicionar linguagens, você precisa começar criando uma nova lista. Defina uma função que retorna uma lista vazia.

(new-list)
;; => ()

2. Adicione uma nova linguagem à lista

Conforme você explora o Exercism e encontra linguagens que quer aprender, vai precisar adicioná-las à sua lista. Defina uma função para adicionar uma nova linguagem ao início da sua lista.

(add-language '("Clojurescript") "JavaScript")
;; => '("JavaScript" "Clojurescript")

3. Confira a última linguagem adicionada

Você vai querer conferir rapidamente qual linguagem acabou de adicionar. Defina uma função que retorna a primeira linguagem da sua lista.

(first-language '("Haskell" "Python"))
;; => "Haskell"

4. Remova a primeira linguagem da lista

Às vezes você muda de ideia sobre uma linguagem que acabou de adicionar. Defina uma função para remover a primeira linguagem da sua lista.

(remove-language '("Common Lisp" "Racket" "Scheme"))
;; => '("Racket" "Scheme")

5. Conte as linguagens da lista

Contar as linguagens uma a uma é inconveniente. Defina uma função para contar quantas linguagens há na sua lista.

(count-languages '("C#" "Racket" "Rust" "Ruby"))
;; => 4

6. Junte tudo

Defina uma função learning-list, dentro da qual você vai usar algumas das funções que definiu acima.

  • Crie uma lista vazia

  • Adicione 2 novas linguagens de programação à lista.

    • "Clojure"
    • "Lisp"
  • Remova "Lisp" da lista, já que talvez você não tenha tempo suficiente no ano, e ela é bastante parecida com Clojure.

  • Adicione mais 2 linguagens de programação à lista.

    • "Java"
    • "JavaScript"
  • Retorne o número total de linguagens. Dica: deve ser 3.

(learning-list)
;; => 3
Editar via GitHub O link abre em uma nova janela ou aba
Clojure Exercism

Tudo pronto para começar Tracks on Tracks on Tracks?

Crie sua conta no Exercism para aprender e dominar Clojure com 12 conceitos105 exercícios e mentoria humana de verdade, tudo de graça.