鉴于
urls = {}
environment = 'qa'
district = 'pleasanthill'
url = environment + district
urls[url] = 'https://' + environment + '.' + district + '.test.com'
print(urls[url])
创建
data Person = Person { _name :: String }
makeClassy ''Person
我可以定义以下镜头,在元组中使用name :: Lens' Person String
。
name
是否有更好/规范的方法来定义上面的sndPerson :: Lens' (a, Person) (a, String)
sndPerson = lens
(\(a, p) -> (a, p ^. name))
(\(_, p) (a, n) -> (a, p & name .~ n))
?
答案 0 :(得分:6)
alongside
将一副镜片变成一副镜片,可以成对使用。
因为在示例中您没有专注于第一个组件,所以您只需将id
作为第一个镜头传递。
sndPerson :: Lens' (a, Person) (a, String)
sndPerson = alongside id name