如何从数据中获取特定的变量

  • 本文关键字:变量 获取 数据 haskell
  • 更新时间 :
  • 英文 :


我想创建一个函数,它将允许我从一本书中取出数据Title,下面是数据类型创建

data Novel =
title String
year Int
bought Bool
deriving show
data Novel
title String
year Int
bought Bool
deriving show

我想创建一个函数getTitle它将获取标题

getTitle :: Novel -> String
getTitle = undefined

以及能够使用setBought

函数更改bought变量
setBought:: Person -> String -> Person
setBought = undefined

首先,确保语法正确:

data Novel = Novel
{ title :: String
, year :: Int
, bought :: Bool }
deriving (Show)

现在,不管签名是怎么说的,title不是String类型的变量,但它实际上是一个访问函数:

Prelude> :t title
title :: Novel -> String

这里就是你的getTitle,不需要定义任何东西

对于setBought,…嗯,Person是什么?无论如何,对于"changes"的数据类型,您可以做两件事:

  • 在构造函数上完全匹配并重新放回去。像

    f :: Novel -> ...
    f (Novel t y b) = ... (Novel _ _ _) ...
    
  • 使用记录更新语法

    f :: Novel -> ...
    f book = ... book{ year=_ } ...
    

处理记录的一种完全不同的方式是透镜库。

相关内容

  • 没有找到相关文章

最新更新