cabal exec -- ghc --make scanner.hs
./scanner input.json output.html
Origin Json File
{
"quiz": {
"sport": {
"q1": {
"question": "Which one is correct team name in NBA?",
"options": [
"New York Bulls",
"Los Angeles Kings",
...
],
"answer": "Huston Rocket",
"age": 31,
"case": true
}
},
...
}
}
-
IO _ when return type is IO _, use <- to assign it to a variable
addOne :: Int -> IO Int addOne x = do return x main = do value <- addOne 1 print(value)
-
unusual show
> show '"' "'\"'" :: String > show '\\' "\\\\" :: String > show 'x' "'x'" :: String
if want to convert Char to String
> ['x'] "x" :: [Char]
regex cheat sheet Install
$ cabal install regex-pcre
Error may occur
Wrap.hsc:148:10: fatal error: 'pcre.h' file not found
#include <pcre.h>
solution for mac
brew install pcre
cabal install regex-pcre
Manage packages in local directroy
cabal sandbox init
to use ghci with packages with local sandboxs
# For GHC < 7.6
$ ghci -no-user-package-conf -package-conf .cabal-sandbox/x86_64-osx-ghc-8.2.2-packages.conf.d
to comile hs file with local sandboxs
cabal exec -- ghc --make myhaskell.hs