Tengo un programa haskell para listar todos los enteros de [1..n] basados en la entrada n. Quiero filtrar ciertos números basados en una condición y mostrarlos como una lista. ¿dónde y cómo puedo usar la función/condición del filtro?¿Cómo uso la función de filtro en Haskell?
Según la documentación Haskell:
filter :: (a -> Bool) -> [a] -> [a]
filtro, aplicado a un predicado y una lista, devuelve la lista de aquellos elementos que satisfacen el predicado; es decir,
filter p xs = [ x | x <- xs, p x]
gracias! lo explicó muy claramente. Entendí cómo filtrar los números pares e impares, pero ¿qué pasa con el filtrado de los números que pueden dividir la entrada n? algo así como isDivisible n = filter [1..n] div n? ¿cuál es la sintaxis para eso?: S – Amjad
Tendría que hacer una función en la línea de: 'isDivisible n p = n \' mod \ 'p == 0' y usar eso como su predicado. Tenga en cuenta que esta función devuelve verdadero si el resto de la división de n con p es cero, y de lo contrario es falso. Tenga en cuenta que los argumentos ahora están en un orden ligeramente diferente de lo que desea, por lo que es posible que desee simplemente voltearlos en la definición por ahora, o use 'flip'. – Sarah
Obteniendo errores, no estoy seguro de dónde definir este predicado. Creo que no puedo usarlo en la misma línea que filtro ¿verdad? Quiero que el programa obtenga una entrada y enumere todos sus divisores. quiero saber cómo se define el predicado para esto. Gracias. – Amjad