gpt4 book ai didi

haskell - 修改成员变量的惯用方法

转载 作者:行者123 更新时间:2023-12-02 05:31:34 25 4
gpt4 key购买 nike

我知道 Haskell 不是面向对象的,所以它不是严格意义上的“成员变量”。

data Foo = Foo {
bar :: Int,
moo :: Int,
meh :: Int,
yup :: Int
}

modifyBar (Foo b m me y) = (Foo b' m me y)
where b' = 2

这就是我的代码目前的样子。问题是我现在正在制作具有 16 个或更多成员的数据类型。当我需要修改单个成员时,它会导致代码非常冗长。有解决办法吗?

最佳答案

modifyBar foo = foo { bar = 2 }

这个语法会复制foo,然后修改那个副本的bar字段为2。这自然可以扩展到更多字段,所以你不需要编写 modifyBar 函数。

(参见 http://book.realworldhaskell.org/read/code-case-study-parsing-a-binary-data-format.html#id625467)

关于haskell - 修改成员变量的惯用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6215526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com