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