[Haskell-beginners] Re: global variables

prad prad at towardsfreedom.com
Sun Aug 15 14:04:11 EDT 2010

On Wed, 11 Aug 2010 22:25:45 +0200
Ertugrul Soeylemez <es at ertes.de> wrote:

> My way of doing this is the following (snippet):
>   import Control.Applicative
>   import MonadLib
>   type DatabaseT = ReaderT Connection
>   myApplication :: DatabaseT IO ()
>   myApplication = do
>     dbConn <- ask
>     inBase $ runRaw dbConn "SELECT now();"
>   runDatabaseT :: BaseM m IO => DatabaseT m a -> m a
>   runDatabaseT c = do
>     conn <- inBase $ connectPostgreSQL ""
>     runReaderT (Config conn) c
>   main :: IO ()
>   main = runDatabaseT myApplication
thank you ertugrul. i understand the explanations you and MAN have
provided regarding global variables.

however, i don't understand what you have done above despite the
illustrative game example. i've been in the middle of trying to get
info out of a monad (as indicated in other posts) and have finally
gotten by the errors (although the understanding hasn't quite congealed
yet). as a result i haven't been able to try to incorporate the above
yet (which is why i haven't responded till now).

i did note that MonadLib doesn't seem to exist, so is that something i
get from cabal? is ask part of it too?

> What you want is not a global variable, but a convenient way to pass
> environment values to functions and computations.
yes that is what i want, but i haven't gotten the gist of the code you
have provided me with yet. i need to understand types better for one

> I hope this helps.
it will. i've flagged your post and will come back to it after
acquiring a bit more competence - as well as repetitive readings.

In friendship,

                                      ... with you on your journey
Towards Freedom
http://www.towardsfreedom.com (website)
Information, Inspiration, Imagination - truly a site for soaring I's

More information about the Beginners mailing list