On Fri, Sep 12, 2008 at 9:47 PM, Jason Dusek [EMAIL PROTECTED] wrote:
I'd like to use template Haskell to include as a string in a
Haskell file. How do I do it?
I presume you mean Include a string from the outside world with a IO
action (a file, keyborad, etc ...)
--
module EmbedStr (embedStr) where
import Language.Haskell.TH
import Language.Haskell.TH.Syntax (lift)
embedStr :: IO String - ExpQ
embedStr readStr = lift = runIO readStr
--
For example, to get asked about the string you want to embed during
compilation ...
$ ghci -XTemplateHaskell EmbedStr.hs
GHCi, version 6.8.2: http://www.haskell.org/ghc/ :? for help
Loading package base ... linking ... done.
[1 of 1] Compiling EmbedStr ( EmbedStr.hs, interpreted )
Ok, modules loaded: EmbedStr.
*EmbedStr let myStr = $(embedStr ((putStrLn What string?) getLine))
Loading package array-0.1.0.0 ... linking ... done.
Loading package packedstring-0.1.0.0 ... linking ... done.
Loading package containers-0.1.0.1 ... linking ... done.
Loading package pretty-1.0.0.0 ... linking ... done.
Loading package template-haskell ... linking ... done.
What String?
Foo
*EmbedStr myStr
Foo
*EmbedStr
Is there any lengthy documentation with examples for Template
Haskell? The pages linked to from `haskell.org` are a little
sparse.
Uhm, I only know about
http://www.haskell.org/haskellwiki/Template_Haskell#Template_Haskell_tutorials_and_papers
I particularly like Mark Snyder's Template Haskell chapter on the
Software Generation and Configuration Report , but the link is broken
:(
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe