ChrisBenyamin
ChrisBenyamin

Reputation: 1728

Beginning Lua: How to call functions from terminal on Mac OS?

I'm new to Lua and work around with some tutorials, try some basic stuff like coding common algorithms etc.

But I have some trouble while using the lua interpreter on my mac os machine.

For example let's say we have a file called 'sample.lua', holds the code line:

function fib(n) return n<2 and n or fib(n-1)+fib(n-2) end

How do I run that function from terminal? If I don't use any function, I just call the script with 'lua script.lua' - works!

Next question points on the basic understanding between the usage of non-compiled and compiled lua-source. Why is lua code run without compiling, like I mentioned before (lua script.lua)? Or will this statement compile the code temporarily and run afterwards?

Thanks in advance

chris

Upvotes: 2

Views: 5262

Answers (3)

Mike M.
Mike M.

Reputation: 563

You can run lua from the terminal with the -i flag:

lua -i luascript.lua

This will execute the script and then put the interpreter into interactive mode. Then you could call the function right from the interactive prompt:

fib(3)

Upvotes: 6

lhf
lhf

Reputation: 72312

Lua scripts are always compiled into Lua VM instructions before running. Precompiled scripts just skip this step.

Upvotes: 2

Ponkadoodle
Ponkadoodle

Reputation: 5957

To run that function from the terminal, you would have to do something like:

lua -e"dofile'sample.lua' print(fib(3))"

The -e there just tells it to execute the following string, which loads your file 'sample.lua' and then prints the result of fib(3) to stdout.

I don't know the answer to your second question though.

Upvotes: 2

Related Questions