在Haskell中,如果我用一个构造函数为一个类型指定了字段名,编译器应该生成适当的函数MyType -> fieldType。我想知道是否有什么方法可以告诉编译器给这些函数以签名MyType -> Maybe fieldType。undefined
data MyType = Empty | Record { st :: String, ui :: Word }-- st :: MyType -> Maybe(Record _ n) = n
我
= Company { ...目前,我正在避免通过对导入进行限定来污染全局命名空间,但它确实使记录访问变得笨拙。import Person as P
isFred p = (P.name p) == "Fred"
是否仍然没有更好的方法来访问记录字段?这里提到的解决方案使用模板Haskell、透镜、类型类等来为每个字段创建一个类型