Я всегда писал свой список-создание рекурсивных функций в этом формате:
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 выполняет функцию?