Powiedzmy mamyHaskell: Get nazwisko konstruktora dane jako ciąg
data D = X Int | Y Int Int | Z String
pragnę mieć funkcję getDConst
getDConst :: D -> String
która zwraca albo "X", "Y" lub " Z ", zgodnie z konstruktorem danych użytym do jego wprowadzenia. Czy istnieje ogólny sposób pisania tego bez konieczności wykonywania case
na każdym konstruktorze danych? (Jestem ok z rozwiązań opierając się na Data.Typeable
lub coś podobnego)
Jeśli ktoś dostaje też błąd z tym: Spróbuj dodać '{- # JĘZYK DeriveDataTypeable # -}' na początku pliku. Jest to konieczne w GHC, gdy czerpiesz dane i można je wydobywać. – jPlatte