1) y = show x
где х - число. Результат y - строка
2) z = map digitToInt y
digitToInt переводит все символы (разряды исходного числа x в числа). Результат z - список чисел.
Т.е. x = 125, y = "125" или ['1', '2', '5'], z = [1, 2, 5]
3) sum z считает сумму списка, в нашем случае сумму цифр исходного многоразрядного числа.
Ответ на последний вопрос такой. У функции самый большой приоритет (10), поэтому map "притягивает" аргумент digitToInt. У ОПЕРАТОРА композиции приоритет, вроде, 9. Поэтому последний пример эквивалентен исходному и скобки не обязательны. Правда, советуют ставить пробелы вокруг точки (оператора композиции) для наглядности.