В Control.Lens.Traversal
функция beside
пересекает обе части Bitraversable
. Приведенный пример являетсяКак я могу отслеживать разные части структуры данных один за другим?
>>> ("hello",["world","!!!"])^..beside id traverse
["hello","world","!!!"]
Могу ли я написать более явную версию beside
(назовем его bothParts
), что вместо Bitraversable
ограничение имеет два Traversal
сек? Я полагаю, что это должно использоваться так:
Это уже существует? Является ли это слишком опасным для использования в здравом смысле? Спасибо!
Edit:
Или, возможно, что-то вроде:
>>> ("hello",["world","!!!"])^..bothParts _1 (_2.traverse)
["hello","world","!!!"]
Я думаю, что 'bothParts l1 l2' не всегда будет действительным' Traversal'. Рассмотрим 'bothParts _1 _1' (или любой другой случай, когда' l1' и 'l2' перекрываются). – fizruk