Todavía estoy tratando de descifrar este código:En Haskell, ¿por qué tengo que usar el signo de dólar en este código?
import Data.Char
groupsOf _ [] = []
groupsOf n xs =
take n xs : groupsOf n (tail xs)
problem_8 x = maximum . map product . groupsOf 5 $ x
main = do t <- readFile "p8.log"
let digits = map digitToInt $concat $ lines t
print $ problem_8 digits
En problem_8 x = maximum . map product . groupsOf 5 $ x
por qué no puede ser sólo groupsOf 5 x? ¿es porque x luego se expandirá a algunas otras expresiones (aquí será: digits = map digitToInt $concat $ lines t
)? ¿Es este el llamado flojo (x no se expandirá ahora, pero tal vez más tarde)?
Gracias. ¿A qué te refieres con: desde. (composición de funciones) toma dos funciones como argumentos,? en ". groupsOf 5", 5 se considera como una función? – osager
De todos modos, excelente para señalar el hecho de que el punto está esperando una función, no una lista o cualquier tipo de datos. – osager
no, '(groupsOf 5)' es una función – bdonlan