Nói rằng tôi có những điều sau kiểu dữ liệu tùy chỉnh và chức năng trong Haskell:thành viên truy cập của một kiểu dữ liệu tùy chỉnh trong Haskell
data Person = Person { first_name :: String,
last_name :: String,
age :: Int
} deriving (Eq, Ord, Show)
Nếu tôi muốn tạo một hàm print_age
in tuổi của một người, như vậy: print_age (Person "John" "Smith" 21)
, làm cách nào để viết print_age
để truy cập thông số độ tuổi? Tôi là một người hướng đối tượng, vì vậy tôi ra khỏi yếu tố của tôi ở đây. Tôi về cơ bản tìm kiếm tương đương với Person.age.
Trong Frege (Haskell cho JVM) bản ghi giới thiệu một vùng tên, vì vậy bạn sẽ viết '' 'Person.age person'''. Mặt khác, Frege cho phép viết '' 'person.age''', giống như trong OO. – 0dB
Là một newbee hoàn chỉnh (!), Tôi đang tìm thấy sự lộn xộn không gian tên được tạo ra bởi các bản ghi là xấu xí và bực dọc. Cú pháp Frege là hấp dẫn và, iiuc, tránh được vấn đề này. – Alan
Ah, tôi thấy tôi không đơn độc: https://ghc.haskell.org/trac/ghc/wiki/Records/NameSpacing – Alan