Search code examples
functionhaskellghcitoupper

Haskell-ghci, function toUpper not found?


I'have right now installed the ghci version 8.6.2 and following a tutorial I write:

toUpper "something"

but ghci compiler prints out:

Variable not in scope: toUpper :: [Char] -> t

Do I miss some libraries or anything else?


Solution

  • The toUpper :: Char -> Char is not part of the Prelude, and thus not imported "implicitly".

    You can import it with:

    import Data.Char(toUpper)

    or just:

    import Data.Char

    to import all functions, datatypes, etc. defined in that module.

    Note that it has signature Char -> Char, so it only converts a single character to its uppercase equivalent.

    You thus need to perform a mapping:

    Prelude Data.Char> map toUpper "something"
    "SOMETHING"