如果你有一个f :: Lens' a b和g :: Lens' b c则f . g是Lens' a c通过以下得到f先g。值得注意的是:
镜头组成函数(实际上它们只是函数)
如果考虑到的view功能Lens,数据流似乎是“从左到右”的,这可能会使您对功能组合的常规感觉倒退。另一方面,如果您想到-.表示法(如它在OO语言中的发生方式),应该感觉很自然。
不仅仅是作曲Lens与Lens,(.)可以用来编写几乎所有的“Lens样”键入在一起。由于类型很难遵循,因此很难总是看到结果是什么,但是您可以使用lens图表来找出结果。该组合x . y的类型x和y该图表中的类型都具有最小上限的类型。