opciones - hola mundo en haskell
¿Qué significa un tope completo o punto o punto(.) En Haskell? (6)
"El período es un operador de composición de funciones. En términos generales, donde f y g son funciones, (f. G) x significa lo mismo que f (gx). En otras palabras, el período se usa para tomar el resultado de la función a la derecha, aliméntelo como un parámetro a la función de la izquierda y devuelva una nueva función que represente este cálculo ".
Realmente me gustaría que Google fuera mejor en la búsqueda de sintaxis:
decades :: (RealFrac a) => a -> a -> [a] -> Array Int Int
decades a b = hist (0,9) . map decade
where decade x = floor ((x - a) * s)
s = 10 / (b - a)
Es una composición de función: link
Significa composición de funciones. Vea esta pregunta .
Tenga en cuenta también que fgh x
no es equivalente a (fgh) x
, porque se interpreta como fg(hx)
que no verificará el tipo a menos que (hx) devuelva una función.
Aquí es donde el operador $ puede ser útil: fgh $ x
convierte a x de ser un parámetro a h
a ser un parámetro a la expresión completa. Y así se convierte en equivalente a f(g(hx))
y la tubería vuelve a funcionar.
Composición de la función (la página es bastante larga, usa la búsqueda)
.
Es una función de orden superior para la composición de la función.
Prelude> :type (.)
(.) :: (b -> c) -> (a -> b) -> a -> c
Prelude> (*2) . (+1) $ 1
4
Prelude> ((*2) . (+1)) 1
4
f(g(x))
es
en matemáticas: f ∘ g
(x)
en haskell: ( f . g )
(x)