Начиная Lua: Как вызывать функции из терминала в Mac OS? - PullRequest
2 голосов
/ 05 августа 2011

Я новичок в Lua и работаю над некоторыми учебными пособиями, пробую некоторые базовые вещи, такие как кодирование общих алгоритмов и т. Д.

Но у меня возникли некоторые проблемы при использовании интерпретатора lua на моем компьютере Mac OS.

Например, допустим, у нас есть файл с именем sample.lua, содержащий строку кода:

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

Как мне запустить эту функцию из терминала? Если я не использую какую-либо функцию, я просто вызываю скрипт с помощью lua script.lua - работает!

Следующий вопрос указывает на базовое понимание между использованием не скомпилированного и скомпилированного lua-источника. Почему код lua выполняется без компиляции, как я упоминал ранее (lua script.lua)? Или этот оператор временно скомпилирует код и выполнит его?

Заранее спасибо

* 1014 Крис *

Ответы [ 3 ]

4 голосов
/ 08 августа 2011

Вы можете запустить lua из терминала с флагом -i:

lua -i luascript.lua

Это выполнит скрипт, а затем переведет переводчик в интерактивный режим. Тогда вы можете вызвать функцию прямо из интерактивного приглашения:

fib(3)
2 голосов
/ 05 августа 2011

Lua-скрипты всегда компилируются в инструкции Lua VM перед запуском.Скомпилированные сценарии просто пропустите этот шаг.

2 голосов
/ 05 августа 2011

Чтобы запустить эту функцию из терминала, вам нужно сделать что-то вроде:

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

-e там просто говорит ему выполнить следующую строку, которая загружает ваш файл 'sample.lua'и затем выводит результат fib(3) на стандартный вывод.

Хотя я не знаю ответа на ваш второй вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...