Рассмотрим
foldr (\x (a,b) -> (a || x==2, b || x==7 )) (False,False) [1..6]
--(True,False)
Игнорируя тот факт, что это можно легко написать с помощью elem
, у меня есть сильное ощущение, что я могу использовать синтаксис Arrow
для упрощения лямбда-выражения, я просто не могусделай это правильно.
Можно ли упростить эту лямбду, используя стрелки?И есть ли у вас какие-либо общие советы о том, как «увидеть», когда стрелки могут работать, и как найти правильное выражение?