Questão 2931147

Tecnologia da Informação · 2023

Questão

ID 2931147

Disciplina: Tecnologia da Informação

Assunto: Listas

Ano: 2023 Banca: INEP ENEM - Instituto Nacional de Estudos e Pesquisas Educacionais Anísio Teixeira Órgão: Exame Nacional de Desempenho dos Estudantes


Uma lista pode ser dividida em duas partes: o primeiro elemento (a cabeça da lista) e os demais elementos (sua cauda). Por exemplo, em uma lista de inteiros [1, 2, 3, 4], a cabeça dessa lista é o valor inteiro 1, enquanto sua cauda é a lista de inteiros [2, 3, 4]. Uma lista vazia é representada por [ ].

O código a seguir define duas funções descritas em uma linguagem de programação funcional que manipulam listas de inteiros. A função enade recebe uma lista de inteiros e produz uma nova lista de inteiros. A função auxiliar é chamada pela função enade e possui dois parâmetros: um número inteiro e uma lista de inteiros. Essa função produz uma lista de inteiros.

enade :: [Int] -> [Int]

enade [] = []

enade (cabeca:cauda) = auxiliar cabeca (enade cauda)

auxiliar :: Int -> [Int] -> [Int]

auxiliar x [] = [x]

auxiliar x (cabeca:cauda)

  | (x `mod` 2 == 0) = x:cabeca:cauda

  | otherwise = cabeca:auxiliar x cauda

Considerando o código apresentado, é correto afirmar que se a função enade for executada recebendo como parâmetro de entrada a lista [1, 2, 3, 4, 5, 6, 7, 8], o resultado será

Alternativas da questão 2931147
Pular para o conteúdo principal