как взять элемент elt и список xs и возвращает только элемент перед первым вхождением elt в xs, если он существует. например,Как вернуть элемент до ввода?
elementBefore ’h’ "elephant" -- should return Just ’p’
elementBefore ’z’ "elephant" -- should return Nothing
В чем проблема с моей программой? Благодарю.
elementBefore :: Eq a => a -> [a] -> Maybe a
elementBefore elt [] = Nothing
elementBefore elt [x] = Nothing
elementBefore elt xs | head (tail xs) == elt = Just (head xs)
| otherwise elementBefore elt (tail xs)
Охранники должны находиться на новой линии, и вам не хватает равных после «иначе». Код, похоже, работает, но вы получаете неожиданные результаты? –
Возможный дубликат [Haskell, передающий пустой символ в функцию] (http://stackoverflow.com/questions/25271939/haskell-passing-empty-character-to-a-function) – amalloy