Apresente a execução passo a passo das seguintes expressões:
length (zero :: zero :: [])

Passo 1

Vamos começar resumindo o que a questão pede. Temos uma expressão em Haskell: length (zero :: zero :: []). O conteúdo envolvido aqui é a manipulação de listas e a função length, que calcula o tamanho de uma lista. Para resolver isso, vamos precisar entender como as listas são construídas em Haskell e como a função length funciona.

Passo 2

Primeiro, vamos entender a construção da lista usando o operador ::. Em Haskell, o :: é chamado de “cons” e serve para adicionar um elemento ao início de uma lista. Por exemplo, 1 :: [2, 3] resulta na lista [1, 2, 3].

Passo 3

Na expressão zero :: zero :: [], estamos adicionando dois elementos, ambos chamados zero, a uma lista vazia []. Vamos quebrar isso passo a passo:
  1. Primeiro, zero :: [] cria uma lista com um elemento: [zero].
  2. Em seguida, zero :: [zero] adiciona outro zero na frente, resultando em [zero, zero].

Passo 4

Agora que temos a lista [zero, zero], vamos aplicar a função length nela. A função length conta quantos elementos existem na lista. A sintaxe é length <lista>.

Passo 5

Aplicando length na nossa lista:
length [zero, zero]
Isso significa que estamos contando os elementos na lista [zero, zero].

Passo 6

Contando os elementos:
  • O primeiro zero é o primeiro elemento.
  • O segundo zero é o segundo elemento.
Totalizando 2 elementos na lista.

Resposta

A expressão length (zero :: zero :: []) resulta em 2.

Exercícios relacionados