Как можно вызвать программу на Лиспе из приложения Rails? ... Например, разрешить конечному пользователю вводить блок текста в веб-приложении Rails, обрабатывать текст программой Лисп и возвращать результаты в Приложение Rails?
На ум приходит пара способов:
Запустить программу lisp с помощью Process . Общайтесь с программой на Лисп через стандартный вход, и программа Лисп выводит свой результат через стандартный вывод.
Сделайте то же самое, что и выше, но вместо этого общайтесь через именованные каналы . Пусть ваш код Ruby записывает данные в именованный канал, затем программа Lisp читает из этого канала и записывает данные out через другой именованный канал, который вы затем читаете в своем приложении Ruby. Программа на Лиспе может запускаться в фоновом режиме в качестве демона, проверяющего данные на входящем канале, или запускать его по мере необходимости с помощью утилит командной строки Ruby (как указано выше).
Найдите мост Руби-Лисп. У меня нет опыта работы с таким мостом (и при этом я не знаю ничего, если он вообще существует), и я думаю, что вышеупомянутые 2 механизма проще, но ваш пробег может отличаться.
Другой простой способ - запустить Lisp на HTTP-сервере и связаться с ним с помощью HTTP-запросов.
CL-JSON поддерживает JSON-RPC . Настроить на веб-сервере, таком как Hunchentoot , очень просто, чтобы иметь веб-службу на основе Lisp, которую может использовать все, что говорит на JSON-RPC (например, this ).
Это будет зависеть от того, как часто это будет происходить.