Selección por posición
Definir la función
seleccion :: Ord a => [a] -> [Int] -> [a]
tal que (seleccion xs ps) es la lista ordenada de los elementos que ocupan las posiciones indicadas en la lista ps. Por ejemplo,
seleccion [6,2,4,7] [2,0] == [4,6] seleccion ['a'..'z'] [0,2..10] == "acegik"
Soluciones
import Data.List (sort) -- 1ª definición seleccion :: Ord a => [a] -> [Int] -> [a] seleccion xs ps = sort [x | (x,n) <- zip xs [0..] , n `elem` ps] -- 2ª definición seleccion2 :: Ord a => [a] -> [Int] -> [a] seleccion2 xs = sort . map (xs!!)