-- Всем привет, проконсультируйте пожалуйста, кто может: -- -- Имеется некий кастомный тип данных -- по сути дела пара строк -- data SPair = SPair String String deriving (Eq, Show) -- -- некоторый тестовый набор данных -- testList = [SPair "test1" "abc", SPair "hello" "world", SPair "goodby" "hell"] -- -- обьявлена функция получения первой строки пары -- first (SPair x _) = x -- -- и имеется 2 реализации функции поиска пары в списке, по -- значению первой строки как по ключу: -- -- -- Вариант 1 использует охранные инструкици для организации -- ветвления: -- tlookup1 title [] = Nothing tlookup1 title (x:xs) | (first x) == title = Just x | otherwise = tlookup1 title xs -- -- Вариант 2 использует для тех-же целей case .. of : -- tlookup2 title [] = Nothing tlookup2 title (x:xs) = case (first x) of title -> Just x _ -> tlookup2 title xs -- -- Ну и закладки для запуска -- test1 = tlookup1 "hello" testList test2 = tlookup2 "hello" testList -- -- Имеем на выходе: вариант 1 корректно работает, а вариант 2 -- возвращает всегда первый элемент списка, как будто-бы -- под первый кейс подходят любые заголовки. -- Подскажите куда смотреть --
Ответ на:
комментарий
от sf
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от Cy6erBr4in
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от Cy6erBr4in
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Case со строками (2014)
- Форум [cl][нубский вопрос] case и строки (2012)
- Форум Haskell - The Craft of Functional Programming (2006)
- Форум Bash конструкция (2018)
- Форум switch ... case (2010)
- Форум SQL case (2015)
- Форум NAS case (2014)
- Форум case KEY_UP (2008)
- Форум CASE средства (2002)
- Форум Строка состояния vim в haskell mode (2012)