es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Función de Haskell para obtener el mínimo de una lista en función de una función dada.

Tengo que escribir una función como esta minByFunction (\x -> -x) [1,2,3,4,5] que me devuelve como respuesta 5. Otro ejemplo sería minBy length [“a”, “abcd”, “xx”] me devuelve “a”.
Pensé que podía resolver esto con algo como:

minBy :: (a -> Bool) -> [a] -> Int
minBy measure list =
case list of
[] -> 0
(x:xs:rest) -> if measure x > measure xs then minBy measure x:rest else minBy measure xs:rest

Tags:  ,

Answer

  1. Avatar for davy.ai

    minByFunction :: (Int -> Int) -> [Int] -> Int
    minByFunction f lista = minBy (\x -> f x) lista

    minByFunction (\x -> -x) [1,2,3,4,5]
    — devuelve 5

Comments are closed.