Я работал над проблемой, при которой у меня есть список кортежей, состоящий из songName, artistName и sales. Я должен получить либо количество продаж, используя имя песни и имя исполнителя, и если кортежа, содержащего эту информацию, нет в списке, я должен вернуть 0.
Я попытался решить эту проблему с помощью решение ниже:
testData :: [Sales]
testData = [("No Lie", "Sean Paul feat. Dua Lipa", 100),
("Yes Lie", "Sean Paul feat. Dua Lipa", 10),
("Fear & Delight", "The Correspondents", 120)]
findSales :: [Sales] -> String -> String -> Int
findSales ((track, artist,qty): xs) trackName artistName
| track == trackName && artist == artistName = qty
| otherwise = 0
Однако, когда я ввожу файл git запрос, например findSales testData "Yes L ie" "Sean Paul feat. Dua Lipa" , я ожидаю это будет включено в список кортежей и, следовательно, вернет 10, вместо этого программа вернет 0, крайний регистр.
Где я ошибаюсь, когда всегда возвращается крайний регистр?
И есть ли хороший инструмент / расширение, которое я мог бы использовать в VS Code, чтобы я мог легко отлаживать программу в будущем. Я пытался использовать Haskelly / Heskero, но мне не удалось заставить их работать при попытке их настройки.