That worked. Thank you!
-deech

On Sat, Oct 23, 2010 at 1:49 PM, Claude Heiland-Allen <claudiusmaximus@goto10.org> wrote:
Hi Aditya,

The problem is not that the file was not loaded, but that in Lua, loading a file only loads it and does not execute it; Lua is a "dynamic" language, by which I mean that definitions are created through execution.

Attached is a simple example, note that there is no proper error checking - you probably want to check the results rather than pattern matching against constants.

Thanks,


Claude


On 23/10/10 03:21, aditya siram wrote:
Hi all,
I'm having some issues calling Lua functions from Haskell. I have the
following in "Haskell2Lua.lua":
function hello ()
   return "hello world"
end

And my Haskell file "Haskell2Lua.hs" looks like this:
import qualified Scripting.Lua as
Lua

main =
do

    l<-
Lua.newstate

    Lua.openlibs
l

    succ<- Lua.loadfile l
"/Haskell2Lua.lua"

    print succ


    Lua.callproc l "hello"
""

    Lua.close l

When I compile and run this file I get:
0
Haskell2Lua: user error (attempt to call a nil value)

I have tried some variations on calling the function including:
Lua.callproc l "hello"
Lua.callfunc l "hello"
Lua.callfunc l "hello" ""

I know the Lua bridge is working because the following works:

Lua.callproc l "print" "Hello from Lua"

Any help is appreciated!
-deech


--
http://claudiusmaximus.goto10.org

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe