Free Palestine and Lebanon 🍉 Stop the Genocide
Haskell Logo

Programação Funcional

Questão 9: replicate

Voltar

Apresente uma definição recursiva da função (pré-definida) replicate :: Int -> a -> [a] que dado um inteiro n e um elemento x constrói uma lista com n elementos, todos iguais a x.

Exemplo

> replicate 3 10
[10,10,10]

Resolução

Clica para revelar

replicate :: Int -> a -> [a]
replicate 0 _ = []
replicate n x
    | n < 0 = []
    | otherwise = x : replicate (n - 1) x