gpt4 book ai didi

haskell - 为什么我不能在记录更新符号中使用函数参数?

转载 作者:行者123 更新时间:2023-12-03 02:25:58 24 4
gpt4 key购买 nike

损坏的代码示例:

data Foo = Foo {
bar :: (Int -> Int)
}

baz = Foo { bar i = i*3 }

为什么这不可能?

最佳答案

这只是一个语法限制 - 我怀疑如果考虑此功能,它会被拒绝,因为有直接的替代方案。另外,如果它被支持,下一个问题将是为什么不与多个子句进行模式匹配,总体而言,它只会使语言变得更大,但并没有那么多好处。

对于您给出的具体情况,您可以使用 baz = Foo { bar =\x -> x*3 } 来代替,或者定义一个辅助函数。

关于haskell - 为什么我不能在记录更新符号中使用函数参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24215280/

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