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