[Haskell-cafe] Writing functions in Haskell.
Greg Buchholz
haskell at sleepingsquirrel.org
Fri Apr 29 11:12:36 EDT 2005
Daniel Carrera wrote:
> Alright, I have what I believe must be a simple question. As one of the
> exercises for the Haskell tutorial I got I have to implement an
> alternative to the 'map' function.
>
> This is what I have:
>
> -----------------------------
> my/prompt $ cat Test.hs
> module Test
> where
>
> my_map p [] = []
> my_map p (x:xs) = p x : my_map p xs
> my/prompt $ hugs
>
> [snip]
>
> Hugs.Base> :l Test
> Test> :also Char
> Char> map toUpper "Hello"
> "HELLO"
> Char> my_map toUpper "Hello"
> ERROR - Undefined variable "my_map"
Hugs can't find your version of "my_map" because it is sitting in
the "Char" module (notice the Char> prompt vs. Test>). You could fully
qualify the function name (Test.my_map toUpper "Hello"), or you might
want to add "import Char" to your source file. Something like...
$ cat test.hs
module Test where
import Char
my_map p [] = []
my_map p (x:xs) = p x : my_map p xs
$ hugs
__ __ __ __ ____ ___
|| || || || || || ||__ Hugs 98: Based on the Haskell 98
||___|| ||__|| ||__|| __|| Copyright (c) 1994-2003
||---|| ___|| World Wide Web: http://haskell.org/hugs
|| || Report bugs to: hugs-bugs at haskell.org
|| || Version: November 2003
_________________________________________
Haskell 98 mode: Restart with command line option -98 to enable
extensions
Type :? for help
Prelude> :l test.hs
Test> my_map toUpper "Hello"
"HELLO"
Test>
More information about the Haskell-Cafe
mailing list