Не могли бы вы дать фрагмент кода, показывающий, как использовать Lua, встроенный в OCaml?
Простым примером может быть вариант "Hello, World". Пусть OCaml запросит у пользователя имя. Затем передайте это имя функции Lua. Пусть Луа напечатает приветствие и вернет длину имени. Затем попросите OCaml напечатать сообщение о длине имени.
Пример:
user @ desktop: ~ $ . / Hello.opt
Имя? Пользователь
Привет, пользователь.
Ваше имя состоит из 4 букв.
Пользователь @ рабочий стол: ~ $
[Изменить]
Как программист, не работающий с C, могу ли я реализовать это без написания промежуточной программы на C для передачи данных между Lua и OCaml?
Ниже приводится теоретическая идея того, что я хотел бы попробовать. К сожалению, строка 3 ocaml_hello.ml должна знать, как вызвать функцию, определенную в lua_hello.lua, чтобы код был действительным.
lua_hello.lua
Определяет lua_hello, который печатает аргумент и возвращает его длину.
1 function lua_hello (name)
2 print ("Hello, "..name..".")
3 return (string.len (name))
4 end
ocaml_hello.ml
OCaml запрашивает имя, вызывает функцию Lua и печатает возвращаемое значение.
1 let () = print_string "Name? "; flush stdout in
2 let name = input_line stdin in
3 let len = Lua_hello.lua_hello name in
4 Printf.printf "Your name is %d letters long." len; flush stdout;;