{-# LANGUAGE OverloadedStrings #-} {-| Simple program running Lua code. -} module Main where import HsLua.Core import qualified Data.ByteString as B main :: IO () main = do putStrLn "Calling Lua to output some Fibonacci numbers." luaStatus <- run $ do openlibs -- load the default Lua packages dostring luaProgram -- load and run the program putStrLn ("Lua finished with status '" ++ show luaStatus ++ "'.") -- | The Lua program. It uses a simple loop to calculate and print the -- first 11 Fibonacci numbers. -- -- Note that we are using the /OverloadedStrings/ extension. The -- @IsString@ instance for ByteString behaves weirdly with non-ASCII -- characters, but we don't use any here. luaProgram :: B.ByteString luaProgram = B.concat [ "local a, b = 0, 1\n" , "for i = 0, 10 do\n" , " print(i, a)\n" , " a, b = b, a + b\n" , "end\n" ]