Zadanie: Próbuję utworzyć niestandardowy typ danych i mieć możliwość drukowania na konsoli. Chcę też móc go sortować za pomocą naturalnego porządku Haskella.Mylić o niestandardowych typach danych w Haskell
Problem: Napisz teraz, nie mogę skompilować tego kodu. Zgłasza następujący błąd: No instance for (Show Person) arising from a use of 'print'
.
Co mam tak daleko:
-- Omitted working selection-sort function
selection_sort_ord :: (Ord a) => [a] -> [a]
selection_sort_ord xs = selection_sort (<) xs
data Person = Person {
first_name :: String,
last_name :: String,
age :: Int }
main :: IO()
main = print $ print_person (Person "Paul" "Bouchon" 21)
Fajnie, dziękuję. Więc Eq i Ord pozwolą Osobom na sortowanie w sposób naturalny? –
Yup, z instancją 'Ord' (która wymaga' Eq'), standardowe sortowanie 'z' Data.List' jest dostępne do sortowania. –
A jeśli chciałem użyć 'selection_sort_ord' (powyżej), aby posortować listę pozycji danej osoby w kolejności rosnącego wieku, używając słowa kluczowego" instance ", aby napisać własną funkcję" porównywania ", wszelkie sugestie dotyczące tego, w jaki sposób bym to zrobił to? –