Много раз я вижу функции, которые работают с заголовком списка, например:
trimHead ('\n':xs) = xs
trimHead xs = xs
то я вижу определение:
trimTail = reverse . trimHead . reverse
то я вижу:
trimBoth = trimHead . trimTail
Они чисты, но эффективны trimTail
и trimBoth
? Есть ли лучший способ?