En Haskell, no puede iterar sobre una tupla como puede hacer una lista.
Si la tupla solo tiene dos elementos, puede usar fst
para recuperar el primer elemento de la tupla y snd
para recuperar el segundo elemento.
Una manera de hacer lo que creo que quiere hacer es este enfoque:
Prelude> let lst = [(1,2), (3,4)]
Prelude> filter ((==1).fst) lst
[(1,2)]
Lo que sólo devuelve los elementos de la lista, donde el primer elemento es igual a 1; por supuesto, se puede sustituir x
donde pongo 1.
a ser un poco más específico, se aplica primero (==1).fst
fst
al elemento de LST, a continuación, aplica (==1)
al resultado de fst
- técnicamente, el punto compone las dos funciones juntas.
Eso es genial, gracias. ¡Me estaba preguntando qué estaban haciendo esos. En todo el código de muestra! – Zippy
Creo que los usos de (y las diferencias entre) '.' y' $ 'son uno de los obstáculos más comunes para el inicio de Haskell, así que no se preocupe, ¡usted no es el único que ha tenido problemas con eso! –