Конкатенация списков Haskell и формат (head :tail)

Я всегда писал свой список-создание рекурсивных функций в этом формате:

recursiveFunc :: [a] -> [b]
recursiveFunc (x:xs) = [change x] ++ resursiveFunc xs where
    change :: a -> b
    change x =...

Я понимаю, что любая функция, подобная приведенной выше, может быть написана для случая a -> b, а затем просто mapобработана над набором [a], но, пожалуйста, примите эту разбавленную-ситуацию как пример.

HLint предлагает заменить [change x] ++ recursiveFunc xsна change x : recursiveFunc xs.

Является ли это предложение чисто эстетическим или как-то влияет на то, как Haskell выполняет функцию?

6
задан alain.janinm 30 April 2012 в 08:59
поделиться