Haskell lista

0

Mam problem z napisaniem funkcji, która by dodawała element do listy za podany element.

Np.:
Main>zmień 2 na 3 [1,2]
[1,3]

0
-- Prosta, bezpośrednia wersja, guard:
zamienNa _ _ [] = []
zamienNa a b (x:xs) | a == x    = b : zamienNa a b xs
                    | otherwise = x : zamienNa a b xs

-- j/w, z użyciem if
zamienNa _ _ [] = []
zamienNa a b (x:xs) = if a == x then b else x : zamienNa a b xs

-- bardziej deklaratywna, z niejawną rekurencją
zamienNa a b xs = map (\x -> if x == a then b else x) xs
0

Dziękuje za pomoc:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1