Free Palestine and Lebanon 🍉 Stop the Genocide
Haskell Logo

Programação Funcional

Questão 20: powerEnumFrom

Voltar

Apresente uma definição recursiva da função powerEnumFrom :: Int -> Int -> [Int] que dado um valor n e um valor m constrói a lista [n^0,…,n^(m−1)].

Exemplo

> powerEnumFrom 2 10
[1,2,4,8,16,32,64,128,256,512]

Resolução

Clica para revelar

powerEnumFrom :: Int -> Int -> [Int]
powerEnumFrom n 1 = [1]
powerEnumFrom n m
    | m > 1 = powerEnumFrom n (m - 1) ++ [n^(m-1)]
    | otherwise = []