5

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?

glc78
  • 439
  • 1
  • 8
  • 20

1 Answers1

9

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"
Willem Van Onsem
  • 443,496
  • 30
  • 428
  • 555