LINUX.ORG.RU

Скрестить ежа и ужа (C/C++ & LISP)


0

0

Есть-ли возможность в сишных/плюсовых программах использовать LISP-овые "куски кода"? Всякую рекурсивную математику, мне думается, лучше ваять на LISP, а окошки/кнопочки -- на плюсовых библиотеках (Qt, прочее). Закиньте ссылки, что посмотреть на этот счёт.

И да, эта порнография пол offtopic работать должна будет.

Ответ на: комментарий от Deleted

Спасибо, погляжу. А какие проблемы могут вообще возникнуть при таком подходе? Если с позиций начинающего смотреть?

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

> А какие проблемы могут вообще возникнуть при таком подходе? Если с позиций начинающего смотреть?

Мопед не мой! Я просто разместил объяву! (с)

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

> Я просто разместил объяву!

Ничего, раз разместил -- значит, есть ч0! :-)

one_more_hokum ★★★
() автор топика

Основная проблема лиспа с офтопиком - отсутствие хороших свободных реализаций. Я не знаю насчёт CLISP (это - недореализация, т.к. в ней нет нативного компилятора), у остальных реализаций проблемы под офтопиком.

Например, у CCL проблемы с русификацией (например, с Русскими именами файлов, которые могут встретиться в имени домашнего каталога), а у остальных свободных реализаций - с тредами (если я не отстал от новостей). Касаемо ECL, у меня вообще не заработало то, что я скачал в виде бинарного файла. Возможно, если его пересобирать, оно заработает, но у меня нет cygwin или чё там надо.

К плюсовым библиотекам имхо должны существовать биндинги. С моей точки зрения, если в принципе есть возможность использовать лисп в системе, то всё должно строиться из лиспа. Т.е., не вызывать лисп из С++, а вызывать С++ библиотеки из лиспа. По-моему, в случае Qt не должно быть с этим проблем. Разработка при этом вполне может ускориться из-за отсутствия цикла edit-compile-run и вообще из-за гибкости лиспа. Хотя это зависит от организации проекта.

Я бы рекомендовал попробовать Lispworks, правда, он стоит 1000 евро.

Также есть весьма недорогая реализация Corman Lisp. Мне она не очень понравилась, но похоже, что она в целом работоспособна.

PLT Scheme хорошо проработана и имеет GUI, являющийся форком wxWidgets. Но скорость исполнения у неё в разы ниже, чем у хороших реализаций Common Lisp (язык такой - ничего не сделать, и это касается всех реализаций Scheme, кроме, может быть, Stalin).

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

Хотя, положа руку на сердце, я бы вообще не советовал вкладывать серьёзные силы в Common Lisp. Это - недружественная среда. Вы будете постоянно иметь дело с проблемами, которые покажутся Вам удивительными в своей абсурдности (например, может удивить необходимость проводить нетривиальные манипуляции и проявлять изобретательность, чтобы найти в процессе сборки место, где произошла ошибка компиляции). Эти проблемы в лисп-сообществе не решены и похоже, никто не собирается их решать. Если вы придёте на comp.lang.lisp с каким-то вопросом, то первый ответ Вам будет "не делай так, это неправильно". Да и вообще сообщество мало и похоже, продолжает сокращаться.

Я-то сам лиспом пользуюсь и буду пользоваться впредь, но это - всего лишь потому, что "пока он понял, что нечего ждать, прошло слишком много лет".

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

Мне интересно, пробовал ли кто-нибудь это реально сделать. Дока у меня есть, да=)

rual_ilmarranen
()

Не надо ничего никуда встраивать. Математику можно выделить в отдельный бинарь и работать с ним через popen, или, если Qt, то через QProcess. Так будет гибче и не надо будет заморачиваться с взаимодействием C++<->lisp.

Reset ★★★★★
()
Ответ на: комментарий от guest-3484-2009

Но вызывать сишку придется из лисп-системы, если конечно лисп не умеет собираться в DLL.

А вообще, что такое "LISP"? Неужто та самая реализация, что на IMB 704 работала? Или LISP 1.5?

И, кстати, писать гуйню на цэ или цэпп, особенно на современной винде - извращение еще то.

guest-3484-2009
()
Ответ на: комментарий от den73

den73: Ну ты и тролль. Не можешь пользоваться инструментом, иди пиши на том же С++, там в шаблонах быстро находится место где произошла ошибка. Сколько можно ныть ?!!!!! Тебе не приходило в голову, что если проблему никто не собирается решать, то это означает что ты, чего-то недокумекал ?

>Я-то сам лиспом пользуюсь и буду пользоваться впредь, но это - всего лишь потому, что "пока он понял, что нечего ждать, прошло слишком много лет"

Нееееет, только не это! Не надо им пользоваться, уйди лучше с миром на Питон, там тебе охотней расскажут "почему в Питоне это не так, то не так".

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