Архитектору и проектировщику|Тепло- и звукоизоляция URSA.RU
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > LISP Оформление кодов

LISP Оформление кодов

Ответ
Поиск в этой теме
Непрочитано 11.01.2011, 20:08 #1
LISP Оформление кодов
VVA
 
Инженер LISP
 
Минск
Регистрация: 11.05.2005
Сообщений: 6,834

На сайте Lee Mac опубликован LISP Styler для оформления кодов перед публикацией на форумах или html страницах.
Пример использования команды lsp2bbc c цветовой схемой, предложенной автором (код для примера взят отсюда )
Код:
[Выделить все]
(defun str->list (s)
                 ;|
***************************************************************************************
*
* Программа разделяет строку на список текстовых и цифровых составляющих.
* Запятая между цифрами, зменяется на точечный разделитель дробной части.
* 
**************************************************************************************
*
* Написал Елпанов Евгений       (ElpanovEvgeniy)
*
* дата создания (13/10/2007 a 11:42)
* написано во время конкурса на форуме:
* http://www.cadxp.com/XForum+viewthread-fid-101-tid-16943-page-2.html
***************************************************************************************
* Пример использования и результатов работы:
* (str->list "point.25.4cm.")           => ("point." 25.4 "cm.")
* (str->list "point.25,4cm.")           => ("point." 25.4 "cm.")
* (str->list "point.3/8cm.")            => ("point." 0.375 "cm.")
* (str->list "qvf12qsdf125 5sf 56dfv2") => ("qvf" 12 "qsdf" 125 " " 5 "sf " 56 "dfv" 2)
***************************************************************************************
 |;
 (defun str->list1 (a b f)
  (cond
   ((null b)
    (list (if f
           (cond ((vl-position 46 a) (atof (vl-list->string (reverse a))))
                 ((vl-position 47 a) (distof (vl-list->string (reverse a))))
                 ((vl-position 44 a) (atof (vl-list->string (subst 46 44 (reverse a)))))
                 (t (atoi (vl-list->string (reverse a))))
           )
           (vl-list->string (reverse a))
          )
    )
   )
   (f
    (if (or (= (car b) 44) (< 45 (car b) 58))
     (str->list1 (cons (car b) a) (cdr b) f)
     (cons (cond ((vl-position 46 a) (atof (vl-list->string (reverse a))))
                 ((vl-position 47 a) (distof (vl-list->string (reverse a))))
                 ((vl-position 44 a) (atof (vl-list->string (subst 46 44 (reverse a)))))
                 (t (atoi (vl-list->string (reverse a))))
           )
           (str->list1 (list (car b)) (cdr b) nil)
     )
    )
   )
   (t
    (if (< 47 (car b) 58)
     (cons (vl-list->string (reverse a)) (str->list1 (list (car b)) (cdr b) t))
     (str->list1 (cons (car b) a) (cdr b) nil)
    )
   )
  )
 )
 (setq s (vl-string->list s))
 (str->list1 (list (car s))
             (cdr s)
             (if (or (= (car s) 44) (< 45 (car s) 58))
              t
             )
 )
)

Вложения
Тип файла: lsp lisp styler.lsp (19.4 Кб, 86 просмотров)

__________________
Как использовать код на Лиспе читаем здесь
Просмотров: 11836
 
Непрочитано 11.01.2011, 20:20
#2
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,440
Отправить сообщение для Елпанов Евгений с помощью Skype™


Еще один вариант...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 11.01.2011, 20:43
#3
skkkk


 
Регистрация: 20.03.2008
Московская область
Сообщений: 2,321


Очень любопытная идея, может, кому и понадобится, но, по-моему, любой программист любой код тут же вставляет во VLIDE. Какой от этого смысл, интересно? Разве только на форуме появится некий движок, в котором можно Ctrl+Alt+E, а затем, например, Шаг с заходом...
skkkk на форуме  
 
Непрочитано 11.01.2011, 20:46
#4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 36,871


Не любой программист и не любой код. А вот читать подсвеченный код все же проще.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 11.01.2011, 21:03
#5
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 859
Отправить сообщение для Disney с помощью Skype™


Попробовал LISP Styler, почему-то переменную ss покрасил как функцию в синий...
Код:
[Выделить все]
(setq	     ss	      (ssget ('((0 . "*TEXT,DIMENSION"))
		      )
)
Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
Еще один вариант...
правда, только в html, на форум не вставишь



Цитата:
Сообщение от skkkk Посмотреть сообщение
Разве только на форуме появится некий движок
Да, было-бы здорово, чтоб по-молчанию, форум сам коды раскрашивал...
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Автор темы   Непрочитано 11.01.2011, 22:00
#6
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,834
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от skkkk Посмотреть сообщение
любой программист любой код тут же вставляет во VLIDE. Какой от этого смысл,
Попробуй скопировать код из #1 и вставить в VLIDE. Он копируется просто как текст без BB кодов
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 11.01.2011, 22:30
#7
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 11,232


Конечно, подсветка синтаксиса на форуме нужна. Но делать специальные "расцвеченные" файлы на самом LISP - мягко говоря на любителя. Ради этого запускать AutoCAD, запускать программу....

Вообще-то одна из проблем для любого форума - запрет вставки HTML в текст сообщений. Жестоко, но правильно - иначе такого навставляют...

Движок сайта обычно дополняется специальным плагином, например GeSHi. Такой плагин просто обрабатывает обрамленный BB-тегом CODE текст и автоматически выполняет раскраску. Можно указать имя подсвечиваемого языка. Для распространенного в Web PHP подсветка выполнятся прекрасно. Для LISP - хуже, так как гораздо больше "ключевых слов". Но это поддается доработке - проще один раз правила создать.

Подробнее об этом у меня на сайте

Я лично пользуюсь своей программой ruSourceExplorer (где-то в DNL лежит). При работе с исходниками (они сами раскрашиваются) достаточно щелкнуть кнопку и получаем еще и расцвеченный HTML. Его можно вставить "куда надо". Куда дозволено.

А программа Lisp Styler интересная. В академическом плане. Спасибо.
ShaggyDoc вне форума  
 
Непрочитано 11.01.2011, 22:32
#8
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,843


Цитата:
Сообщение от skkkk Посмотреть сообщение
по-моему, любой программист любой код тут же вставляет во VLIDE.
я не пользуюсь Vlide (мне он не нравится - под лисп есть куча, с моей точки зрения, куда более удобных редакторов). А идея действительно интересная (хоть я и дальтоник), я думаю если описать формат - можно и Admin'a попросить добавить макрос на тег CODE.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 11.01.2011, 23:28
#9
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,440
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от Дима_ Посмотреть сообщение
я не пользуюсь Vlide (мне он не нравится - под лисп есть куча, с моей точки зрения, куда более удобных редакторов).
Расскажи пожалуйста поподробнее...
Очень интересует, во первых, чем твой любимый редактор лучше и во вторых, как называется.

ps. Меня, vlide, тоже не всем устраивает, но замены я не нашел
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 11.01.2011, 23:33
#10
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 36,871


Один из вариантов - Notepad++, там есть возможность добавления собственных ключевых слов. Но лично мне он как-то не очень понравился. Чисто субьективное мнение.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 11.01.2011, 23:39
#11
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,440
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Один из вариантов - Notepad++, там есть возможность добавления собственных ключевых слов. Но лично мне он как-то не очень понравился. Чисто субьективное мнение.
я так же, его выделил из всех просмотренных и использую для быстрого просмотра файлов, без открытия acada...
Но надеюсь, действительно есть более продвинутые редакторы, хорошо работающие с autolisp.
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 11.01.2011, 23:47
#12
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 36,871


Я имел в виду не просмотр, а написание кодов
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.01.2011, 06:39
#13
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 11,232


Цитата:
я не пользуюсь Vlide (мне он не нравится - под лисп есть куча, с моей точки зрения, куда более удобных редакторов)
Это сгоряча, не подумавши. VLIDE - не просто редактор, это IDE. Именно для AutoCAD. Помимо стандартных функций правки текста там много инструментов для разработчика, которые сторонний редактор никак не заменит. Надо просто их изучить.

Сторонних удобных редакторов не "куча", а маленькая кучка. Но удобных редакторов на все случаи можно и самому написать (если делать нечего). При современном уровне программирования. Включаем, например, в форму компонент SynEdit, подключаем модуль UniHighLigher и наш редактор будет уметь раскрашивать пару сотен типов файлов. А какие не умеет - добавим, не влезая в код. При этом он и все мыслимые действия по правке кода умеет делать.

Но и описывать подсветку надо с умом. Вот замечательный Notepad++ делает это весьма примитивно. Там для LISP включено совсем немного "базовых" ключевых слов, только один вид комментариев. Нет возможности задавать правила подсветки с помощью масок и прочее.

А редактор VLIDE, между прочим, начинает сам подсвечивать неизвестные ему ключевые слова, если зарегистрирована по определенным правилам библиотека.
ShaggyDoc вне форума  
 
Непрочитано 12.01.2011, 08:26
#14
Лиспер


 
Регистрация: 11.10.2010
Сообщений: 979


Если есть желание: архив распаковать в каталог установки Notepad++, заменив имеющиеся там файлы.
Вложения
Тип файла: rar npp_lang.rar (49.5 Кб, 63 просмотров)
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 12.01.2011, 10:53
#15
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,843


То Евгений и ShaggyDoc - я не писал, что vlide плох - мне его "логика" не понравилась, да он IDE - но насчет инструментария - а зачем он в лиспе, тем более в мультзадачной систме (у меня паралельно горит F2 окно автокада - в нем и проверяю "он лайн"). Для "быстрого просмотра" использую упомянутый notepad++, а непосредственно пишу в редакторе от plt-scheme (ныне Racket). Там ИХМО очень хорошо реализовано автоматическое выравнивание и выделение - подвел курсор к скобке и тебе автоматом выделяет фон до конца\начала пары (как ctrl+shift+] в Vlide - только автоматом), алгоритм выравнивания несколько другой нежили в Vlide и "более автоматизированный" в случае исправления кода - учитывает не только строки, но и контекст операторов - синтаксис влияющих на форматирование в лисп и схеме совпадают. У Vlide есть плюс - выделение ключевых слов (в схеме только строки и цифры - из за разного подхода к количеству встроенного "синтетического сахара") - спасает от "очепяток", но в сравнении остальных достоинств - лично мне это не перевешивает. Жаль только, что не работает (из-за различия синтакисисов) указатель имен (работает в "родном" варианте - схеме) - не просто проверяя по одиноковому имени, но и учитывает "схемологику" программы - то есть подводишь к любому имени - а тебе "стрелочками" указывает где это имя образуется и все места где используется (еще раз повторю проверяет не по имени (они могут совпадать в разных лямбдах), а по реальному применению).

p.s. вот так выглядит один и тот же автоматически выровненный код:
Код:
[Выделить все]
Vlisp
(if (= a b)
  (progn (test)
    (test2))
  (test3))

Scheme
(if (= a b)
    (progn (test)
           (test2))
    (test3))
__________________
Когда в руках молоток все вокруг кажется гвоздями.

Последний раз редактировалось Дима_, 12.01.2011 в 11:17.
Дима_ вне форума  
 
Непрочитано 12.01.2011, 11:15
#16
Vov.Ka


 
Регистрация: 21.07.2008
Луцьк
Сообщений: 170


vlide крутая вещь. все остальное от дьявола.
Vov.Ka вне форума  
 
Непрочитано 12.01.2011, 12:14
#17
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 11,232


Дима_, форматирование в VLIDE настраивается по вкусу.
Tools > Environvent Options > Visual LISP Format Options.

И выравнивать можно получше, например

Код:
[Выделить все]
(if (= a b)
      (progn
        (test)
        (test2)
     ) ;_ end of progn
    (test3)
) ;_ end of if
Это читабельней. Хотя вкусы и привычки разные бывают, кому-то "лесенкой" нравится.

F2 никто не запрещает, но из VLIDE можно прямо фрагмент отправить на выполнение. А значения переменных как во внешнем редакторе контролировать? Ты пошарься по меню, там много очень полезного. Нет только ничего "вижуального" кроме убогого предпросмотра DCL. Но это уж обычное маркетинговое жульничество.

А вообще-то Autodesk просто прикупила сторонний автономный редактор VitalLISP (его и сейчас иногда использую, просто EXE, даже установки не требует). С горем пополам встроили, как умели.
ShaggyDoc вне форума  
 
Непрочитано 12.01.2011, 12:30
#18
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,683
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Нет возможности задавать правила подсветки с помощью масок и прочее.
Вот этого, мне кажется, делать совсем не надо! Потому как, по подсветке я понимаю, что правильно написал название функции. А так может получиться, что префикс написан правильно, по маске название подходит и подсвечивается, а такой функции не существует! И ищи потом ошибку...
Do$ вне форума  
 
Непрочитано 12.01.2011, 13:03
#19
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,843


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Дима_, форматирование в VLIDE настраивается по вкусу.
Tools > Environvent Options > Visual LISP Format Options.
И выравнивать можно получше, например...
... А значения переменных как во внешнем редакторе контролировать?
1. Там нет учета контекста (функций) программы. Хотя по поводу выравнивания согласен - кому как красивей - дело вкуса.
2. А переменных у меня давно в коде не встречается (я уж не раз про это писал) Вот последний пример - ну удобней мне так.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 12.01.2011, 13:35
#20
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,440
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от Дима_ Посмотреть сообщение
А переменных у меня давно в коде не встречается (я уж не раз про это писал) Вот последний пример - ну удобней мне так.
попробуй сам переписать эту же программу, но с переменными и без лишних функций, а потом сравни скорость выполнения...
Я тоже не люблю использовать переменные, если можно без них и не в ущерб, но всегда помню, какая за это плата!

ps. заодно засеки разницу скорости для скомпилированных вариантов.
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 12.01.2011, 13:58
#21
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,843


Евгению:
Вот что меня меньше всего "парит" - так это потеря производительности от рекурсии. При использовании рекурсий я смотрю только на отстуствие хвостовой оптимизации (влезает ли в стек предпологаемое множество итераций) - к сожалению есть такой недостаток автолиспа. Я убежден, что если дать одну и ту же более-менее сложную общую задачу 2 отдельным программистам и попросить одного писать в функциональном стиле, а другого в императивном, то их производительность будет в среднем одинакова (а реализации алгоритмов несколько отличатся - каждый с уклоном в "свою" сторону). Да если переписать готовую "функционально-рекурсивную" программу в императивном стиле - выйгрыш будет (на самом деле лиспы посерьезней делают это автоматически - и упомянутая хвостовая оптимизация тому пример), но он будет не значителен, программа потеряет "лекгость изменений" и самое главное изначально в императивном стиле ее так не напишешь (я точно не напишу) т.к. логика подходов все-таки разная.

p.s. - на производительность автолиспа я смотрю так, либо задача решатся - нажал-результат, либо надо серьезно задуматся - тот-ли инструмент используется т.к. выйгрыш от использование итераций лежит в пределах нескольких процентов - то для юзера абсолютно все равно 0.1 или 0.12 секунды ушло на обработку данных. А если задача требует серьезных вычислений и должна производится быстро - тут стоит посмотреть в первую очередь на алгоритм, а если с ним уже ничего не сделать - то в сторону инструментов действительно убыстряющих процесс вычислений в разы - dll(Net), либо отдельный EXE.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 12.01.2011, 14:29
#22
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 11,232


Цитата:
Потому как, по подсветке я понимаю, что правильно написал название функции. А так может получиться, что префикс написан правильно, по маске название подходит и подсвечивается, а такой функции не существует!
Так это же надо с умом делать. То, что имя функции подсвечено, еще не значит, что она существует и доступна. Она всего лишь в списке ключевых слов (я говорю не про VLIDE, там vla- не перечислены, а автоматически подсвечиваются из-за наличия регистрации TLB, это только плюс для VLIDE).

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

Например, у меня свои функции имеют одну раскраску, функции от kpblc - другую. Различаются "низкоуровневые" и "высокоуровневые". Это очень облегчает работу.


Цитата:
А переменных у меня давно в коде не встречается (я уж не раз про это писал) Вот последний пример - ну удобней мне так
Это скорее понты, чем удобство. Да, замечательный пример - всё "по-лисповски". Никаких переменных. Но доведись с этим разбираться кому-то другому - замучается. А если это фирма, а не "вольный художник"?

Конечно, без лишних переменных надо обходиться. Но с умом. Самое тяжелое - отладка. Вот здесь переменные помогут. Потом код можно оптимизировать, избавиться от переменных.
ShaggyDoc вне форума  
 
Непрочитано 12.01.2011, 14:40
#23
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,843


Мэтр - клянусь Вам - у меня есть "библиотечка" своих функций - когда я смотрю на те функции, что были написанны с использованием переменных - мне в них гораздо тяжелей понять СВОЮ-ЖЕ логику, нежели в "лямбдовых".
Если нет переменных - отладки на порядок меньше (т.к. самая большая "неразбериха" как правило из-за них и происходит).
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 12.01.2011, 20:28
#24
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


А мдшву имеет подсветку переменных? Как notepad++
Цитата:
Если нет переменных - отладки на порядок меньше
а параметров функций у вас столько же сколько и локальных переменных... + программа вывернута через ж*** ... Но вы так привыкли и такой подход имеет место быть... И даже иногда красиво получается... но для известных мне редакторов что параметр, что и локальное переменное, все едино

Последний раз редактировалось gomer, 12.01.2011 в 20:35.
gomer вне форума  
 
Непрочитано 13.01.2011, 00:02
#25
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,843


Под словом переменная подразумвается обозначние меняющее свое значение в ходе программы (если аргумент всегда одинаков - то его и "отлавливать" не нужно - что не скажешь про переменные). Насчет вывернутости - давайте говорить обоснованно.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 13.01.2011, 00:28
#26
Pastor

это только кличка
 
Регистрация: 22.10.2006
Москва
Сообщений: 252


1. Вариант легкий для восприятия:
Код:
[Выделить все]
(defun myfun (a1 a2) тело функции); определяем функцию.
(myfun arg1 arg2); и вызываем её.
2. Вариант "всё то же самое, но в одну кучу":
Код:
[Выделить все]
((lambda (a1 a2 ) тело функции )  arg1 arg2)
__________________
...в шее моей жилы железные, и лоб мой - медный...
Pastor вне форума  
 
Непрочитано 13.01.2011, 01:07
#27
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Цитата:
Сообщение от Дима_ Посмотреть сообщение
Под словом переменная подразумвается обозначние меняющее свое значение в ходе программы (если аргумент всегда одинаков - то его и "отлавливать" не нужно - что не скажешь про переменные)
Код:
[Выделить все]
((lambda (x) 
  (setq x 0)
  (/ 21 x))
13
)
gomer вне форума  
 
Непрочитано 13.01.2011, 01:18
#28
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,843


у меня нет оператора присваивания setq - поэтому и нет перемных (не надо отлавливать в каком состоянии использутся переменная).
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 13.01.2011, 01:19
#29
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Как тогда организовать сложные циклы с ветвлениием???
gomer вне форума  
 
Непрочитано 13.01.2011, 01:27
#30
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,843


лекго - см. пример из #19. если не понятно - приведи свой
p.s. более того - как раз в "циклах с ветвлением" и всплывает "запутка" с переменными - надо в каждой подветке учесть откуда она могла "приветвится" и что сейчас творится с перемнной (или наделать на каждую комбинацию свою перемнную - а это как правило совсем не мало).
__________________
Когда в руках молоток все вокруг кажется гвоздями.

Последний раз редактировалось Дима_, 13.01.2011 в 01:34.
Дима_ вне форума  
 
Непрочитано 13.01.2011, 02:11
#31
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,455


По просьбе Евгения выкладываю SciTE. Сборка ruboard + моя доработка добавил лексический анализатор языка apdl и еще чего-то не помню.
На лучший редактор не претендую, но с влайд не дружу.
1) ненавижу отладку - и в итоге ей не пользуюсь.
2) много тупых вещей типа окно трассировки нужно закрывать постоянно.
SciTE - не требует установки, распространяется по GPL.
Полностью настраивается с помощью скриптов - разбираешься в существующих скриптах (коментариях) и делаешь по образу и подобию, так можно добавлять свои элементы в падающее меню, назначать сочетание клавишь и т.п. А в данный момент пишу под брикс а потом адаптирую под акад, уже стал получаться сразу кроссплатформенный код.
Вложения
Тип файла: rar SciTE.rar (1.49 Мб, 68 просмотров)
Sleekka вне форума  
 
Непрочитано 13.01.2011, 02:19
#32
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Цитата:
Сообщение от Дима_ Посмотреть сообщение
лекго - см. пример из #19
Я там понял только, что проверики на esc нет, но есть проверка на пустой выбор (if lst ... Не логично... эту лямбду надо было птратить на документ
gomer вне форума  
 
Непрочитано 13.01.2011, 09:26
#33
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,440
Отправить сообщение для Елпанов Евгений с помощью Skype™


Дима_, в параллельной ветке, вы сказали:
Цитата:
Сообщение от Дима_ Посмотреть сообщение
Offtop: (defun soddi_circle (e1 e2 e3 / A A1 B B1 C C1 D D1 R R1 R2 R3 X X1 X2 X3 Y Y1 Y2 Y3) - Евгений Вы меня пугаете
Попробуйте переписать без переменных или значительно сократив их количество. Я не со зла, просто действительно, не всегда код будет проще и легче.
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 13.01.2011, 11:18
#34
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,843


Цитата:
Сообщение от gomer Посмотреть сообщение
Я там понял только, что проверики на esc нет, но есть проверка на пустой выбор (if lst ... Не логично... эту лямбду надо было птратить на документ
Про документ согласен это - копипаст но т.к. эти две функции вызываются 1 раз - этим можно и пренебречь. Про пустой выбор - вы ничего не поняли - эта функция вызывает сама себя пока не кончатся необработанные окружности и пустой список означает конец рекурсии - весь смысл в том что не нужно перебирать каждый к каждому - (поэтому я здесь и не использовал mapcar), а в том - что если круг один раз уже обработан (прочерчен) - то проверять его больше не надо (отдельно для горизонталей и вертикалей) - и следуящая итерация вызывается уже без него.

Евгению - у Вас нет ни одного значения меняющего свое состояния (переменной) - да алгоритм имеет много имен - как их обозначить через
(defun xxx ( / a b c) (setq a 1 b 2 c 3)(XXX)) или
((lambda (a b c)(XXX)) '(1 2 3))
ИХМО разницы ни какой - мне удобней второй вариант - вот если бы Вы в цикле "крутили" переменными - там было-бы много мест где запутатся. У setq есть преимущество - сразу после определения имени - в том же операторе, его можно использовать, то есть - (setq a 5 b (* a 2)) вполне законен, такой отдельной "рекурсивной" лямбды в автолиспе не предусмотренно, но минус что перед тем как использовать переменную - ее неплохобы вынести в локальные - это как правило делают непосредственно в defun'е (лямбды отдельно для обозначения писать нет смысла - но если лямбда и так используется (например внутри mapcar'а) - то можно) и в этом и есть "камень преткновения" - если мы используем эту переменную (именно как переменую) - надо всегда четко осознавать из какого места программы вызывается функция используящая ее и вот эти ошибки в "сложнозацикленной" программе замучаешся отлавливать с любым отладчиком. Я лет 15 программировал на "сугубо" императивном ассемблере - там количество именно переменных доходит до тысяч (плюс стек, плюс регистры). Когда перешел на функциональные языки - поверьте испытал "глубокое счастье" - стоит один раз "въехать" и обратно уже не хочется.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 13.01.2011, 11:24
#35
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 11,232


Цитата:
Попробуйте переписать без переменных
А еще попробовал бы Дима_ написать не "академические" функции учебного плана, а реальную несложную функцию (которую можно завернуть и в "C:команду"). Например:

Рисование неких произвольных прямолинейных сегментов (наподобие команды LINE). Как именно рисуется "сегмент" - задается именем функции рисования, которое передается аргументом. У функции рисования должно быть два обязательных аргумента - точки начала и конца и, факультативно, какой-то список иных аргументов, которые она уже сама знает.

В частном случае, для простоты, это может быть просто отрезок. Но "главная" функция должна:

1. В цикле, до пустого ввода запрашивать точки начала (первый раз) и конца сегмента (до выхода).

2. При этом должны выводиться опции "Предыдущая Начало Откат". "Предыдущая" - это автоматическая привязка начала сегмента к предыдущей первой точке, а "Начало" - запрос новой первой точки. "Откат" - отмена только что нарисованного сегмента. "Предыдущая" точка может быть взята и из прежнего запуска этой программы.

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

4. После ввода очередной точки сегмент должен сразу отрисовываться.

Задача несложная. Пригодится абсолютно всем.

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

Требований к форматированию кода и подсветке синтаксиса нет.
ShaggyDoc вне форума  
 
Непрочитано 13.01.2011, 11:34
#36
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,843


Мэтр - Вы сомневаетесь что я сюда не смогу добавить vl-catch-all-apply?
p.s.Offtop: я не только тут автолиспом развлекаюсь, но и куда более реально пишу на коммерческой основе, а там не до академических понтов - т.к. за них отвечать придется материально.
__________________
Когда в руках молоток все вокруг кажется гвоздями.

Последний раз редактировалось Дима_, 13.01.2011 в 11:51.
Дима_ вне форума  
 
Непрочитано 13.01.2011, 11:58
#37
Pastor

это только кличка
 
Регистрация: 22.10.2006
Москва
Сообщений: 252


Цитата:
а там не до академических понтов - т.к. за них отвечать придется материально.
т.е. там у вас в коде перменные присутствуют?
__________________
...в шее моей жилы железные, и лоб мой - медный...
Pastor вне форума  
 
Непрочитано 13.01.2011, 12:04
#38
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,843


В незначительных количествах - есть моменты плохо (или вообще не) реализованные в автолиспе (замыкания, ограниченность рекурсии и пр.) - если задача выходит за установленные в автолиспе пределы - приходиться "мучатся", ну и естественно есть глобальные переменные. В не автолисп приложениях - только внутри объектов (ООП).
p.s. Короче для реализации алгоритмов я предпочитаю использовать не изменяемые состояния определителей. Достало меня уже объяснять - я никого здесь не уговариваю поступать так-же. Но прошу только - если не понятно как я пишу - не надо меня учить как писать императивно, чтоб вам было понятно - умею я это, но мне так не нравится. Если кто-то не понимает и хочет спросить в чем суть такого способа - другой вопрос.
p.p.s Только, не подумайте - мол изучил рекурсию и строит из себя умного - я многие вещи в автолиспе не знаю и переодически об этом здесь спрашиваю. Мне такой стиль больше по душе - это из разряда советов (или тем более "рьяных" споров) что вкусней - чай, кофе или какао.
__________________
Когда в руках молоток все вокруг кажется гвоздями.

Последний раз редактировалось Дима_, 13.01.2011 в 12:19.
Дима_ вне форума  
 
Непрочитано 13.01.2011, 14:34
#39
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 11,232


Цитата:
Мэтр - Вы сомневаетесь что я сюда не смогу добавить vl-catch-all-apply?
Разумеется, не сомневаюсь. Твое мастерство в LISP не вызывает сомнений, я искренне восхищаюсь.

Я просто предлагаю написать конкретную программу. Не маленький фрагмент, а в целом, с конечным результатом. Сроками никак не ограничиваю, можно и через год. Только не говорить, что "если бы не Автолисп". И не как могу, а как надо. "ТЗ" могу уточнить. Чтобы не отвлекаться на исследования, могу помочь готовыми кусками - можешь оптимизировать "по лямбда-исчислению".

В своем стиле. А мы все поучимся. А ты её сможешь продавать на коммерческой основе.

Одна такая функция заменит десятки разношерстных программ.

Offtop: Сегодня на Хабре интересная заметка "Новый программерский жаргон". Известен термин "рефакторинг" (refactoring) - — процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения и имеющий целью облегчить понимание её работы.

И появился термин Рефукторинг (Refuctoring)

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

ShaggyDoc вне форума  
 
Непрочитано 13.01.2011, 14:53
#40
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,843


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
А ты её сможешь продавать на коммерческой основе.
Купите?
з.ы. Шучу конечно
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 13.01.2011, 22:35
#41
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,455


Цитата:
Это когда вы берёте хорошо продуманный кусок кода и с помощью последовательности небольших обратимых преобразований превращаете в нечто абсолютно непонятное никому, кроме вас.
Таки вы знаете, - очень полезная вещь. Типа обфускации, потому как во времена промежуточных языков защита комерческого кода переходит на новый эволюционный этап. Теперь зарабатывать можно только на поддержке, выпуская новые версии с той скоростью пока пишут деобфускатор к вашему исходнику. (но это не про нас а про НАСТОЯЩИХ программистов)
Sleekka вне форума  
 
Непрочитано 13.01.2011, 23:51
#42
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Как без переменных постоить профиль швеллера, двутавра, уголка по стандарту?
gomer вне форума  
 
Непрочитано 14.01.2011, 00:43
#43
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,843


Цитата:
Сообщение от gomer Посмотреть сообщение
Как без переменных постоить профиль швеллера, двутавра, уголка по стандарту?

А как без утюга сварить пельмени?
Код:
[Выделить все]
(make-profil (assoc профиль '(ассоциативный список параметров профилей)))
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 14.01.2011, 00:56
#44
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Цитата:
Сообщение от Дима_ Посмотреть сообщение
А как без утюга сварить пельмени?
Хе-хе, так и я могу...
Это-понятно... Мне интересна сама make-profil или в списке параметров функция отрисовки
gomer вне форума  
 
Непрочитано 14.01.2011, 09:27
#45
Лиспер


 
Регистрация: 11.10.2010
Сообщений: 979


Offtop: Как-то плавно тема свернула с цветового оформления кодов на методику их написания
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 14.01.2011, 17:58
#46
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Цитата:
Сообщение от Лиспер Посмотреть сообщение
Как-то плавно тема свернула с цветового оформления кодов на методику их написания
Offtop: если логика функции понятна, то раскраска вообще не нужна...
gomer вне форума  
 
Непрочитано 15.01.2011, 17:59
#47
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,683
Отправить сообщение для Do$ с помощью Skype™


Мне нравится
Оформления а-ля VLIDE. Жалко, что на форуме тег FONT отключен, в сообщениях так не оформишь...
Вложения
Тип файла: rar func.rar (1.0 Кб, 79 просмотров)
Do$ вне форума  
 
Непрочитано 15.01.2011, 20:16
#48
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 11,232


Цитата:
Оформления а-ля VLIDE. Жалко, что на форуме тег FONT отключен, в сообщениях так не оформишь...
Примерно так вся подсветка и делается. И делается неправильно с точки зрения современного синтаксиса HTML. Такой код не пройдет валидацию. Это стандарт HTML 3.2, да еще с нарушениями.

В тексте HTML не должно быть тегов типа FONT color=red, а должны быть ссылки на стили, наподобие span class="bracket". А классы должны быть определены в таблице стилей (которая может быть одна на сайт, а то и на весь Интернет). Но пока мало какие программы умеют так делать.

Я тоже свои не научил, у меня тоже такой же HTML получается. Это плохо.
ShaggyDoc вне форума  
 
Непрочитано 15.01.2011, 22:54
#49
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,683
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
И делается неправильно с точки зрения современного синтаксиса HTML. Такой код не пройдет валидацию. Это стандарт HTML 3.2, да еще с нарушениями.
Неудивительно, ибо я в HTML только недавно начал ковыряться
Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
а должны быть ссылки на стили, наподобие span class="bracket"
У Lee Mac в исходном коде так и сделано, но я пока что так не умею. Состряпал как смог
Do$ вне форума  
 
Непрочитано 15.01.2011, 23:21
1 | #50
Pastor

это только кличка
 
Регистрация: 22.10.2006
Москва
Сообщений: 252


Цитата:
я в HTML только недавно начал ковыряться
Тогда возможно пригодятся две очень хорошие и одна шикарная книги:

1. Муссиано Ч., Кеннеди Б.
HTML и XHTML. Подробное руководство, 6-е издание. Символ-Плюс, 2008. - 752стр.

2. Мейер Э.
CSS-каскадные таблицы стилей. Подробное руководство, 3-е издание. Символ-Плюс, 2010. - 576 стр.

3. Фленаган Д.
JavaScript. Подробное руководство, 5-е издание. Символ-Плюс, 2009. - 992 стр.
__________________
...в шее моей жилы железные, и лоб мой - медный...
Pastor вне форума  
 
Непрочитано 16.01.2011, 00:20
#51
Карлсон


 
Регистрация: 28.04.2009
Сообщений: 302


Для общей информации о форматировании лисп-кода отмечу в дополнение к прочему сервис http://lisper.ru/apps/format/create хотя там и нет конкретно autolisp.

Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Вот замечательный Notepad++ делает это весьма примитивно. Там для LISP включено совсем немного "базовых" ключевых слов, только один вид комментариев.
Справедливости ради надо заметить, что Notepad++ таки поддерживает блочный комментарий, но не в синтаксисе autolisp, а для common-lisp т.е. #| ... |#. Но так же замечу что в этом плане данный редактор ведет себя с лиспом странно, ибо если попробовать менять в конфигурационных файлах ключевые символы для обозначения комментариев положительного результата не наблюдается.

Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Это читабельней. Хотя вкусы и привычки разные бывают, кому-то "лесенкой" нравится.
Как бы то ни было, форматирование "лесенкой" в лисп-сообществе считается стандартом и читается лучше, но требует определенного привыкания. И в этом вопросе, пожалуй следует поступаться привычками и вкусами. Т.е. вырабатывать себе правильные привычки и вкусы.
Карлсон вне форума  
 
Непрочитано 16.01.2011, 20:04
#52
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,455


Цитата:
Сообщение от Pastor Посмотреть сообщение
Тогда возможно пригодятся две очень хорошие и одна шикарная книги:

1. Муссиано Ч., Кеннеди Б.
HTML и XHTML. Подробное руководство, 6-е издание. Символ-Плюс, 2008. - 752стр.

2. Мейер Э.
CSS-каскадные таблицы стилей. Подробное руководство, 3-е издание. Символ-Плюс, 2010. - 576 стр.

3. Фленаган Д.
JavaScript. Подробное руководство, 5-е издание. Символ-Плюс, 2009. - 992 стр.
Спасибо за литературку, нашел все кроме Фленагана.
Sleekka вне форума  
 
Непрочитано 16.01.2011, 23:42
#53
Pastor

это только кличка
 
Регистрация: 22.10.2006
Москва
Сообщений: 252


Цитата:
нашел все кроме Фленагана.
Я использую "бумажную" версию данной книги, поэтому увы, нужной ссылкой помочь не могу.
Но книга очень достойная: качественный учебный материал + профессиональный перевод + полный справочник по JavaScript вообще и по клиентскому (практическому JavaScript для браузеров) в частности + твердый переплет, качественная бумага и печать.
__________________
...в шее моей жилы железные, и лоб мой - медный...
Pastor вне форума  
 
Непрочитано 21.01.2015, 13:05
#54
mmax

Программист широкого профиля.
 
Регистрация: 08.09.2005
Челябинск
Сообщений: 721


Тема кому интересна?
Тестировал недавно программу-граббер. И сграбил все имена lisp-функций со справочной системы AutoCAD 2015.
Со страниц:
http://help.autodesk.com/view/ACD/20...D-7060F5E16547
http://help.autodesk.com/view/ACD/20...4-FB57BAB01C44
Предполагаю, что 99,9% а то и все 100% имен сграблено.
В итоге получил полный список AutoLISP функций в текстовом формате которые можно использовать в качестве ключевых слов для подсветки символов в различных редакторах. Например Notepad++.

Есть некоторые редакторы в которых функции подсвечиваются по маске. Например если ключевое слово (vlax-) то будет подсвечено и vlax-get-acad-object и vlax-bla-bla-bla.
Наличие полного списка подсвечиваемых слов хорошо тем что подсвечиваться будут только они и ничего больше.

Во вложенных файлах весь перечень функций в .txt и файл пользовательского синтаксиса для notepad++ 6.7.4
Перед установкой нового синтаксиса нужно в настройках np++ деактивировать стандартный lisp-синтаксис (будет постоянно переключаться на себя).
Для установки зайти в меню Синтаксисы - Задать свой синтаксис - Кнопка Импорт - дальше разберетесь.

Маленький недостаток NP++ в том, что он подсвечивает комментарий одной строки только с двумя ";;".

Миниатюры
Нажмите на изображение для увеличения
Название: lisp.jpg
Просмотров: 250
Размер:	161.4 Кб
ID:	142286  
Вложения
Тип файла: zip LISP функции.zip (29.5 Кб, 30 просмотров)
mmax вне форума  
 
Непрочитано 21.01.2015, 13:25
#55
skkkk


 
Регистрация: 20.03.2008
Московская область
Сообщений: 2,321


Offtop: mmax, решил вернуться на форум и в лисп? Я рад очень этому .
Давно тебя не слышно было, похоже, жить долго будешь, вспоминал я тебя буквально только что
.
А тема да, интересная, правда я уже давно перенастроил под себя синтаксис встроенного в NPP языка LISP. Причем рыл на всяких форумах, как-то еще - не помню, находил списки функций, загонял их в Excel, "сцеплял", фильтровал, сортировал и очень доволен результатом. Но почему-то здесь мой энтузиазм встретили жесткой критикой, мол, на лиспе кодить нужно во влайде.
Где ж ты был года два-три назад, когда я с этим разбирался? Много что получилось, но осталось и много вопросов. Но все равно на досуге гляну, что можно почерпнуть из твоей находки, а заодно и поделюсь своими, если интересно. Сейчас довольно сильно занят.
skkkk на форуме  
 
Непрочитано 21.01.2015, 14:05
#56
mmax

Программист широкого профиля.
 
Регистрация: 08.09.2005
Челябинск
Сообщений: 721


Цитата:
Сообщение от skkkk Посмотреть сообщение
на лиспе кодить нужно во влайде
не нужно.
можно в автокаде сделать панельку с 2 кнопками
1. Загружает лисп-файл с диалоговым окном выбора файла
2. загружает последний загруженный лисп-файл.
Вот вам и пожалуйста - миниверсия VLIDE. Там тоже используется только одна кнопка типа "Загрузить активное окно редактора"

А еще в нотпаде есть функция запуска программ. Эта штука теоретически может сделать так чтобы лисп-код активного окна редактора NP++ сразу улетал в автокад
mmax вне форума  
 
Непрочитано 21.01.2015, 21:03
#57
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,843


Цитата:
Сообщение от mmax Посмотреть сообщение
Тестировал недавно программу-граббер. И сграбил все имена lisp-функций со справочной системы AutoCAD 2015.
Код:
[Выделить все]
 (atoms-family 1)
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 21.01.2015, 22:00
#58
skkkk


 
Регистрация: 20.03.2008
Московская область
Сообщений: 2,321


Цитата:
Сообщение от mmax Посмотреть сообщение
не нужно
Так я и не стал. Кодить во VLIDE. А стал форматировать, и то не всегда: не очень мне по душе то, как он это делает. И отлаживать - и тоже не каждый раз, только особо тяжелые случаи: частенько уже коды работают сразу, а логика мне как автору вполне ясна и где искать ошибку, почти всегда сразу понятно, если заранее хорошенько продумать алгоритм и предчувствовать поведение Автокада, основываясь на опыте и интуиции. В NPP, однако, нет таких полезных вещей, как точки останова, шаги с заходом, удобный контроль переменных и прочих...
Но чаще все равно пишу в NPP и там же отлаживаю.
Цитата:
Сообщение от mmax Посмотреть сообщение
можно в автокаде сделать панельку с 2 кнопками
В процессе отладки я на запуск функции вешаю принудительную загрузку ее же самой. На одном экране код: подправил, сохранил. На другом - Автокад: в нем нажал стрелку вверх и Enter - получил результат. Или ошибку. Тогда снова а блокнот - и снова тест...

Цитата:
Сообщение от Дима_ Посмотреть сообщение
(atoms-family 1)
Дима_, знал я тогда такую возможность, когда искал, но мне очень не понравилось, в каком беспорядочном виде все это "распечатывается" в комстроке. Мало того, что не по алфавиту - это можно легко решить в Excel, так еще и все в верхнем регистре. В NPP подсветка синтаксиса регистрозависима, и так сложилось, что полунегласно-полуофициально часто в двух-трехсложные именах функций VLISP каждый "слог" начинается с заглавной. Мне это тоже нравится, и я в список автозавершения в XML-файле добавил все функции в таком виде и всегда стараюсь придерживаться этого в своих кодах. Потому что тогда, в свое время, в таком виде мне их удалось найти. А в список подсветки добавил и в таком виде, и в нижнем регистре, поскольку на форуме часто не заморачиваются с этим регистром, все пишут в нижнем, но очень и очень редко я видел коды в верхнем. Перевод же из "разнорегистрового" варианта в нижний в автоматическом режиме - не проблема, однако обратное - неверно. Поэтому, в данном случае, "атомсфэмили" - не вариант. Другое дело, в каком виде представлены функции у mmax'а. Заглядение - порядок полнейший. К тому же в готовом виде. Вставляй в нотпад и кайфуй. Спасибо, mmax. Там, кстати, я все же кое-что для себя полезного нашел.
skkkk на форуме  
 
Непрочитано 21.01.2015, 22:06
#59
skkkk


 
Регистрация: 20.03.2008
Московская область
Сообщений: 2,321


Вот, кстати, мой вариант оформления.
Миниатюры
Нажмите на изображение для увеличения
Название: Снимок.JPG
Просмотров: 44
Размер:	221.1 Кб
ID:	142346  
skkkk на форуме  
 
Непрочитано 21.01.2015, 23:54
#60
mmax

Программист широкого профиля.
 
Регистрация: 08.09.2005
Челябинск
Сообщений: 721


Цитата:
Сообщение от skkkk Посмотреть сообщение
В NPP подсветка синтаксиса регистрозависима,
я не ползал в стандартные файлы синтаксиса. В НП++ есть пользовательский инструмент в котором можно поставить галку на регистрозависимость

----- добавлено через ~20 ч. -----
Видео про то как NPP постепенно превращается в VLIDE.
Increase Size Decrease Size Нажмите для просмотра
http://www.youtube.com/watch?v=UzXSGacdNjAРекомендую посмотреть в полном экране HD, иначе самого интересного не видно будет.
Это не видеомонтаж.
Миниатюры
Нажмите на изображение для увеличения
Название: lisp.png
Просмотров: 41
Размер:	37.1 Кб
ID:	142350  

Последний раз редактировалось mmax, 22.01.2015 в 19:57.
mmax вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > LISP Оформление кодов

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу) Red Nova LISP 3878 12.11.2019 18:24
{Конкурс} Lisp. Задачки для студентов gomer LISP 10 05.01.2011 16:33
Как создать lisp Тройника Boo87 LISP 25 16.08.2010 19:54
Запуск Lisp команды в новом документе BlackHarp LISP 1 26.03.2009 23:06
загрузка DOS прог через LISP Gaa LISP 15 12.08.2005 19:19