【发布时间】:2016-07-18 04:41:54
【问题描述】:
好吧,作为一个不到一周前刚从面向对象编程中走出来的人,Haskell 有点不知所措——这很可能已经得到解答,但我所有的研究都没有结果。请多多包涵。
假设我有两种代数数据类型:
data Person = Person {name :: String, houseNumber :: Integer, hasBorrowed :: Bool}
data Book = Book {borrower :: Person, title :: String}
现在,我知道您可以使用函数从单个代数数据类型中简单地提取值:
getHouseNumber :: Person -> Integer
getHouseNumber (Person _ houseNumber _) = houseNumber
getBorrower :: Book -> Person
getBorrower (Book borrower _) = borrower
我的问题是(我发誓当我得到答案时我会打自己的脑袋)我将如何编写一个函数来直接从书中提取 houseNumber(例如)?换句话说:
getHouseNumberFromBook :: Book -> Integer
提前致谢。
【问题讨论】:
标签: haskell algebraic-data-types