破碎代码示例:
data Foo = Foo {
bar :: (Int -> Int)
}
baz = Foo { bar i = i*3 }
Run Code Online (Sandbox Code Playgroud)
为什么这不可能?
GS *_*ica 15
这只是一个句法限制 - 我怀疑如果考虑过这个特性,它会被拒绝,因为有简单的替代方案.此外,如果支持,下一个问题将是为什么不与多个子句进行模式匹配,总体而言,它只会使语言更大,而不是所有的收益.
您可以使用baz = Foo { bar = \x -> x*3 }您给出的特定情况,或定义辅助功能.