La tarea: Estoy tratando de crear un tipo de datos personalizado y poder imprimir en la consola. También quiero poder ordenarlo usando el orden natural de Haskell.Confundido sobre tipos de datos personalizados en Haskell
El problema: Escribir ahora, No puedo obtener este código para compilar. Se arroja el siguiente error: No instance for (Show Person) arising from a use of 'print'
.
Lo que tengo hasta ahora:
-- 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)
Genial, gracias. ¿Entonces Eq y Ord permitirán que la Persona sea ordenada naturalmente? –
Sí, con una instancia 'Ord' (que requiere' Eq'), el 'estándar' estándar' de 'Data.List' está disponible para la clasificación. –
Y si quisiera usar 'selection_sort_ord' (arriba) para ordenar una lista de elementos de Person en orden creciente de edad, usando la palabra clave' instance' para escribir mi propia función 'compare', cualquier sugerencia sobre cómo lo haría ¿esta? –