LINUX.ORG.RU

Главная концепция common lisp


1

7

Ладно посмеялись и хватит. А вот кто мне сможет внятно объяснить, где применяется главная концепция common lisp - эквивалентность кода и данных? Макросы? Но это как-то приметивно, как мне кажиться. Жду примеров использования сей концепции, а то в сети как-то не густо

У меня уже есть соображение, почему это делается не часто и в такой форме, но я пока не буду раскрывать карты



Последнее исправление: mastercoder1 (всего исправлений: 1)
Ответ на: комментарий от anonymous

Все уже сгенерено, надо только запустить.

что «сгенерено»? ты отличаешь инстанс от конструктора? помимо кода есть еще данные, и пока код (даже прекомпилированный) все построит очень даже некомфортно будет (еще раз говорю --- все говно системы кеширования незаменяют прямую работу с содержимым образа. это костыли которые пытаются этот образ «эмулировать»).

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

и пока код (даже прекомпилированный) все построит

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

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

Обычно оно само синхронизируется, определения классов, фукций и.т.п обычно пишут в файлах и потом сразу оттуда компилируют аналогично REPl-у.

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

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

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

Обычно оно само синхронизируется

anonymous об этом и пишет. psv1967 же настаивает на некой мистической важности образа. К Common Lisp это никакого отношения не имеет.

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

Данные приходится перезагружать каждый раз, как они зафейлены. А во время разработки это случается регулярно. Намного чаще, чем один раз за сессию.

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

Реплом пользовался из clisp'а, потому что там readline

rlwrap и readline будет везде.

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

Так он про данные, а не про код.

А как ты отличаешь данные и код в контексте образа? Потому я такой ходмыслей уже перестал понимать.

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

psv1967 же настаивает на некой мистической важности образа. К Common Lisp это никакого отношения не имеет.

А где у тебя тогда храится состояние системы, если не в образе?

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

А где у тебя тогда храится состояние системы, если не в образе?

Состояние хранится в оперативной памяти.

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

а между запусками состояние хранится в исходниках.

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

В течении сеанса разработки я обычно несколько раз перезапускаю систему, что бы получить «чистую» систему. Зачем что-то хранить между сеансами мне не понятно. Нужно мне компоненты грузятся несколько секунд.

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

это в случае кода кода много меньше чем данных. у меня ситуация наоборот --- мало компактного кода и куча данных. мне выгодно иметь данные уже в обработанном виде в образе. и образ естественно сохранять между сессиями.

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

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

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

1) это не частая ситуация, никаких «много раз» не бывает.

2) удаляю rm(объект), или чиню (вплоть до объект<-edit(объект) :) ), удалив пересоздаю найдя в истории репла код создавший объект.

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

1) это не частая ситуация, никаких «много раз» не бывает.

Пишешь сразу без ошибок? ну-ну.

2) удаляю rm(объект), или чиню (вплоть до объект<-edit(объект) :) ), удалив пересоздаю найдя в истории репла код создавший объект.

А зачем терять время? Почему нельзя просто перезагрузить данные - это ведь намного быстрее, чем чего-то искать и править руками?

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

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

ты что измором решил взять? :)

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

Пишешь сразу без ошибок? ну-ну.

а в чём дело?

1) код компактный и высокуровневый, там ошибок крайне мало. 2) данные копируются, а не модифицируются на месте.

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

еще раз повторяю это _медленно_,

Но это в любом случае _намного_ быстрее чем что-то править руками. Ну сколько надо на загрузку двух гигов данных? секунд десять, ну двадцать, если с запасом брать. Хочешь сказать, что ты быстрее умудряешься найти и исправить нетривиальную ошибку руками? не поверю.

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

1) код компактный и высокуровневый, там ошибок крайне мало.

Сказочник.

2) данные копируются, а не модифицируются на месте.

То есть копировать данные на каждый чих по нцать раз в час - это нормально, а скопировать один раз в начале сессии - это медленно. Ты сам себе противоречишь.

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

какую загрузку?! из кеша? объект данных чаще всего результат работы какого то метода анализа, или графический объект. и считать его снова тяжелее чем (трансформировать|исправить). иногда проще запусть на объекте какую то процедуру правящую ошибку чем делать его снова...

не верь. «апельсинов нет» (С)

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

Ты чисто потрендеть? если код состоит из функций, то в нем все данные реадонли и результаты функций пишутся в новые объекты.

какие такие «ошибки» при этом происходят? твои ужасные «ошибки» возможны в имеперативном гуано, которое правит все и вся «по месту». такой изврат возможен только если очень тесно с памятью (и то сначала тест будет написан в функциональном стиле для помещающегося объема данных).

короче ты надоел, поскольку бесполезен более чем полностью :) ешь свой кактус сам :)

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

фанатик, какого это жить инструментом, а не пользоваться им? Хотя, чем больше таких как ты - тем я больше ценен, как носитель знаний, а ты и дальше навязывай другим свою религию, ведь твоя более правильная.лол.

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

гы, «не пользоваться», «носитель» --- сколько пафОса :)

какие такие там у тебя «знания» неземные? мастерклассами торгуешь что ли? давай колись :) а то «у нас есть такие приборы...» (С)

... и заметь это ты про религию нести начал :)

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

Ты столько говорил про то как репл меняет сам способ разработки на лиспе, можешь заснять скринкаст того как ты это делаешь, например когда будешь работать над одним из опенсурц проектов? Я просто сколько читал - так и не смог понять о чем речь, а весь мой опыт с лиспом заканчивается парой хеловордов и привычным циклом запуск - ошибка - редактирование исходников - запуск.

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

Я просто хочу увидеть это в действии.

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