LINUX.ORG.RU

Два вопроса по Lisp


0

0

1. Какой интерпретёр посоветуете? Говорят, Allegro хорош?

2. Надо сделать следующую вещь. Есть файл (или строка, в которую прочитан этот файл, как угодно), допустим, следующего содержания: ================== \section{Расчеты тыры-пыры для lisp-inserts-here:stuff-name}

Тут чего-то понаписано: $$ a = \frac{b}{c} = lisp-inserts-here:(get-value a-param) $$ ... ================== и нужно в LISP эти формы после lisp-inserts-here eval'уатить и выдавать обратно тот же текст, но уже с подставленными значениями (может, проще через Perl или shell? Но я Perl не знаю, а мне это надо сделать до конца недели :( ), т.е. вроде:

(labels ((get-value (param) (param-pam-pam))) (let ((stuff-name 'X1)) (eval-this-file "my-stuff.tex"))) как-то так. Извиняюсь за невнятное изложение %)

★★★

Блин забыл preformatted поставить %) Итак:

1. Какой интерпретёр посоветуете? Говорят, Allegro хорош?

2. Надо сделать следующую вещь. Есть файл (или строка, в которую прочитан этот файл, как угодно), допустим, следующего содержания: 

================== 
\section{Расчеты тыры-пыры для lisp-inserts-here:stuff-name}
Тут чего-то понаписано: 
$$ a = \frac{b}{c} = lisp-inserts-here:(get-value a-param) $$ 
... 
================== 

и нужно в LISP эти формы после lisp-inserts-here eval'уатить и 
выдавать обратно тот же текст, но уже с подставленными значениями 
(может, проще через Perl или shell? Но я Perl не знаю, а мне это 
надо сделать до конца недели :( ), т.е. вроде:

(labels ((get-value (param) (param-pam-pam))) 
   (let ((stuff-name 'X1)) 
      (eval-this-file "my-stuff.tex"))) 

как-то так. Извиняюсь за невнятное изложение %)

uj2 ★★★
() автор топика
Ответ на: комментарий от WidowMaker

> http://www.cliki.net/text

спасибо за ссылку, вот это: http://mlht.ffii.org/ вроде то, но я еще не скачал, не разобрался пока.

А вообще, как такого рода задачи решаются? Т.е. есть какая-то предопределенная структура документа, и в нем непосредственно надо что-то рассчитывать. Причем структура-то есть, но сам вид конечного документа может меняться -- например, количество столбцов в некоторой таблице может меняться в зависимости от рассчетов, но сами значения в таблице рассчитываются по определенным формулам, или, скажем, количество опытов, которые нужно описать в документации, может варьироваться, но их описание строго фиксировано. Не знаю, как более точно это выразить %) Если не трудно, по-подробней расскажите, ну или ссылкой в меня :)

uj2 ★★★
() автор топика
Ответ на: комментарий от uj2

ИМХО любая система для html-шаблонов достаточно развитая такое умеет.

для питона например cheetah (cheetahtemplate.org), для лиспа не знаю
наверное можно и на tex это реализовать

anonymous
()
Ответ на: комментарий от uj2

> А вообще, как такого рода задачи решаются? Т.е. есть какая-то предопределенная структура документа, и в нем непосредственно надо что-то рассчитывать. Причем структура-то есть, но сам вид конечного документа может меняться -- например, количество столбцов в некоторой таблице может меняться в зависимости от рассчетов, но сами значения в таблице рассчитываются по определенным формулам, или, скажем, количество опытов, которые нужно описать в документации, может варьироваться, но их описание строго фиксировано. Не знаю, как более точно это выразить %) Если не трудно, по-подробней расскажите, ну или ссылкой в меня :)

всё зависит от расчётов и требуемого выходного формата.

в простейших случаях (простые вычисления) можно обойтись нативными средствами програм работающих с теми или иными форматами файлов. например ТеХ, html, PS. все они в той или иной мере обладают требуемой тебе функциональностью.

ещё для етих же целей можно заюзать нативный bash или в связке с чем нибуть. только у него довольно ограничен набор елементарно - поддерживаемых форматов файлов тоесть получить непосредственно от баша PS можно а pdf только через конвертор.

для сложных вычислений надо юзать встроенные средства документирования в Matematika или Mapple or some similar.

cvv ★★★★★
()
Ответ на: комментарий от cvv

> для сложных вычислений надо юзать встроенные средства документирования в Matematika или Mapple or some similar.

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

anonymous
()
Ответ на: комментарий от anonymous

>maple тут вообще ни к селу ни к городу.

????

официально он позиционируется как интегрированная среда расчётов и документирования.

Мои колеги юзают его именно для етих целей и как-будто остаются дофольны.

cvv ★★★★★
()

>1. Какой интерпретёр посоветуете? Говорят, Allegro хорош?

Зачем интерпретатор ? Есть хорошие компиляторы. Производительность исполняемого кода на Лисп отличается от Сишного в обычно не более,чем на 30-40%. Причем возможность прекомпиляции функций/запросов и т.п. на лету дает Лиспу некоторые преимущества. Для хотя для Вашей задачи надо сохранить в изображении интерпретатор (т.е. eval), но обработка-то документа должна осуществляться откомпилированным шустрым кодом.

>2 Главное чтобы имелся признак, который однозначно идентифицирует начало Лисповского кода, затем он считывается readerом и выполняется eval, результат выводится в это место. Детально советовать уже поздно ;-)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.