[英]Haskell Identity Lens
我想知道 Haskell 中是否有识别镜头。 一个镜头identity
,如果我有一个类型data MyType = MyType { _myField:: Int }
,那么我可以做myType ^. identity. myField.~ 2
myType ^. identity. myField.~ 2
myType ^. identity. myField.~ 2
. lens-1.1.1
中似乎有一个,但我在lens-4.19.2
中找不到一个。
lens
式镜头的优点之一是它们实际上只是功能。 因此,就像您可以使用 function 组合运算符一样.
在镜头上,您还可以将身份 function id
作为镜头,它确实充当身份镜头,因为它“专注”于整个数据结构。
{-# LANGUAGE TemplateHaskell #-}
import Control.Lens
data MyType = MyType { _myField :: Int }
makeLenses ''MyType
main :: IO ()
main = print $ MyType 37 ^. id . myField
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.