1
setOwner :: File -> User -> File
setOwner f o = f & ownerID .~ (o ^. User.uid)
如何将此变为Setter
?我该如何把它变成二传手?
我不能使它成为镜头,因为getUser :: UserID -> IO User
是一个不纯的功能。
setOwner :: File -> User -> File
setOwner f o = f & ownerID .~ (o ^. User.uid)
如何将此变为Setter
?我该如何把它变成二传手?
我不能使它成为镜头,因为getUser :: UserID -> IO User
是一个不纯的功能。
我刚刚意识到我以前的答案是错误的。哎呦!
在这里你去:
ownerS :: Setter File File() User
ownerS = sets (\f file -> setOwner file (f()))
谢谢。奇迹般有效。我很困惑这可能是一个镜头的罕见问题。 –