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