¿Cambiar el tipo de retorno de una función en Haskell?
¿Existe una manera sucinta de cambiar el tipo de retorno de una función?
Considerarpor ejemplo comparing
enData.Ord
. Devuelve unOrdering
. Sin embargo, solo me interesa saber si los dos elementos son iguales o no. Entonces necesito convertir el resultadoOrdering
a unBool
.
Una forma directa en la que puedo pensar es:
isEqualOn f x y = if comparing f x y==EQ then True else False
(oisEqualOn f x y = comparing f x y==EQ
como aquí como se señala en los comentarios).
¿Hay alguna forma más compositiva de hacer esto (una especie de adaptacióncomparing
o escribirlo sin sentido) sin tener que escribir todo? Idealmente, estoy buscando algo que funcione también en funciones n-ary.
- Actualización -
Según lo sugerido por las respuestas / comentarios, el ejemplo específico anterior (isEqualOn
) se puede implementar utilizando el estándaron
funcionan comoon (==)
. Sin embargo, mi pregunta es acerca de la técnica general para cambiar los tipos de retorno de función de una manera compositiva / sin sentido, como lo demuestra el enfoque SEC en los comentarios.