当前位置:  开发笔记 > 编程语言 > 正文

严格可能在数据定义中

如何解决《严格可能在数据定义中》经验,为你挑选了0个好方法。

我看过很多会谈/阅读博客文章,你应该有严格的字段,data以避免各种性能问题,例如:

data Person = Person
    { personName     :: !Text
    , personBirthday :: !UTCTime
    }

这对我来说很有意义.由于对该数据的函数操作是惰性的,因此不会牺牲可组合性.

但是,如果我添加一个Maybe字段:

data Person = Person
    { personName     :: !Text
    , personBirthday :: !UTCTime
    , personAddress  :: !(Maybe Address)
    }

我将懒惰引入数据结构,毕竟Maybe是一个控制结构.是不是可以毫无价值地躲在Just构造函数后面?

但是,有严格Maybestrict或通过strict-base-types.但是根据反向依赖(strict,strict-base-types),它们并没有被广泛使用.

所以问题是:为什么Maybe在非控制数据定义中应该或不应该使用strict ?

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有