dire che ho il seguente tipo di dati personalizzati e la funzione in Haskell:Accesso membri di un tipo di dati personalizzati a Haskell
data Person = Person { first_name :: String,
last_name :: String,
age :: Int
} deriving (Eq, Ord, Show)
Se voglio creare una funzione print_age
per stampare l'età di una persona, in questo modo: print_age (Person "John" "Smith" 21)
, come potrei scrivere print_age
per accedere al parametro age? Sono un ragazzo orientato agli oggetti, quindi sono fuori dal mio elemento qui. Sto fondamentalmente cercando l'equivalente di Person.age.
In Frege (Haskell per la JVM) un record introduce uno spazio dei nomi, quindi si può scrivere '' 'Person.age person'''. D'altra parte, Frege permette di scrivere '' 'person.age''', proprio come in OO. – 0dB
Come newbee completo (!), Trovo che il disordine dello spazio dei nomi prodotto dai record sia brutto e frustrante. La sintassi di Frege è attraente e, iiuc, evita questo problema. – Alan
Ah, vedo che non sono solo: https://ghc.haskell.org/trac/ghc/wiki/Records/NameSpacing – Alan