有没有办法只导出记录的“getter”而不是“setter”?
例如,假设我们有一个
例如,假设我们有一个
M1.hs
文件。module M1(customCtor, field1) where
data DType = DCtor { field1 :: Int }
customCtor = DCtor { field1 = 1 }
以及 M2.hs
import M1
modified = customCtor{ field1 = 3 } -- how to prevent this?
main = putStrLn . show . field1 $ modified
我希望能够在M2.hs中运行field1
getter但不更新M1之外的记录。
如果可以的话,您能指向Haskell文档的相关部分吗?
如果不可以,您能解释一下原因吗?