Free Palestine and Lebanon 🍉 Stop the Genocide
Haskell Logo

Programação Funcional

Questão 31: insert

Voltar

Apresente uma definição recursiva da função (pré-definida) insert :: Ord a => a -> [a] -> [a] que dado um elemento e uma lista ordenada retorna a lista resultante de inserir ordenadamente esse elemento na lista.

Exemplo

> insert 25 [1,20,30,40]
[1,20,25,30,40]

Resolução

Clica para revelar

insert :: Ord a => a -> [a] -> [a]
insert x [] = [x]
insert x (h:t)
    | x > h = h : insert x t
    | otherwise = x : h : t