'Haskell-Find the shortest word in the list

minimumBy takes as the first parameter a function that should be used to compare two elements.

comparing is a higher-order function that can be used to transform a function of type a -> b(where b is the type that can be compared, i.e. Ord b => a -> b

    import Data.List (maximumBy)
    import Data.Ord (comparing)

              findShortestestWord :: String -> String
              findShortestWord s = minimumBy (comparing length) (words s)

But an error in the compiler gives

"Syntax error in import declaration (unexpected symbol
 "Data.List")"


Solution 1:[1]

Your code has wrong indentation, here is working example

import Data.List (minimumBy)
import Data.Ord (comparing)

findShortestWord :: String -> String
findShortestWord s = minimumBy (comparing length) (words s)

main = getLine >>= print . findShortestWord

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 ianfun