I'd say you're not going to beat
comp = foldr (.) id
Why? Well we have a list of things and we're trying to reduce it in a right associative way.
If you look at the implementations of and
, sum
, maximum
and similar, you'll see that this is how they're implemented in the standard library, I don't think you get more idiomatic than that :)
Tangent: I hesitate to add the foldr1
variant mentioned in comments because I'd say that it's unexpected behavior for this to be partial, unlike say maximum
where it clearly must be.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…