Questões de Tecnologia da Informação · INEP (ENEM)

Tecnologia da InformaçãoParadigmas e linguagens de programaçãoINEP (ENEM) 2023

ENADE

Questão de Tecnologia da Informação

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á

Sua resposta

Mais questões de Paradigmas e linguagens de programação

Questão de prova oficial, com o gabarito definitivo publicado pela banca. Reproduzida para fins de estudo.