|
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447
|
||||||
Есть ли разница между этими макросами?25.12.2015, 18:40. Показов 1588. Ответов 22
Метки нет (Все метки)
Есть ли какая то разница между этими макросами (В производительности и в коде в который они разворачиваются)? Или же нет. Если говорить о loop или do, то там намного больше разных конструкций, и они более универсальны в плане циклов(все таки встроенные мини-языки циклов
).
0
|
||||||
| 25.12.2015, 18:40 | |
|
Ответы с готовыми решениями:
22
Есть ли разница между этими записями Какая разница между этими кодами? |
|
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
|
|
| 25.12.2015, 19:40 | |
|
Нет. Loop предоставляет больше фантазии, нежели do-something.
2
|
|
|
1075 / 968 / 113
Регистрация: 04.11.2012
Сообщений: 1,013
|
|
| 25.12.2015, 21:33 | |
Сообщение было отмечено Vaderkos как решение
Решение
dolist очень простой, это foreach
а loop, это свой встроенный декларативный язык внутри лиспа.
2
|
|
|
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447
|
|
| 25.12.2015, 21:56 [ТС] | |
|
Lambdik, Да, но разницы в коде в который они разворачиваются нет?
0
|
|
|
1075 / 968 / 113
Регистрация: 04.11.2012
Сообщений: 1,013
|
||||||
| 25.12.2015, 22:02 | ||||||
Сообщение было отмечено _sg как решение
Решение
Почему нет, есть!
3
|
||||||
|
Супер-модератор
|
|
| 26.12.2015, 14:24 | |
|
Lambdik, боже мой!.. Оказывается, loop for разворачивается в ужасный код с setq и, страшно сказать - GO !!! "И эти люди запрещают мне ковырять в носу!..." (это я об авторах реализации).
3
|
|
|
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447
|
|
| 26.12.2015, 22:22 [ТС] | |
|
Catstail, Я так понимаю в плане производительности dolist пошустрее будет)
0
|
|
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|||
| 26.12.2015, 22:28 | |||
|
Добавлено через 45 секунд
3
|
|||
|
defun
603 / 617 / 44
Регистрация: 30.04.2011
Сообщений: 702
|
||||||
| 26.12.2015, 22:36 | ||||||
Сообщение было отмечено _sg как решение
Решение
Vaderkos, нет разницы в скорости
3
|
||||||
|
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447
|
|
| 26.12.2015, 22:44 [ТС] | |
|
helter, transformator.t, Уже понял, сам вот сижу проверяю
0
|
|
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
||
| 27.12.2015, 01:41 | ||
|
http://www.lispworks.com/docum... _ababb.htm An implementation is free to implement any macro operator as a special operator, but only if an equivalent definition of the macro is also provided. Насколько понимаю, допустима реализация, в которой dotimes — специальный оператор и макрос, раскрывающийся (например) в этот же специальный оператор. Тогда после раскрытия всех макросов циклы могут оставаться в виде специальных операторов. Хотя я всё равно не понял насчёт ковыряния в носу. По-моему, вполне нормально реализовать циклы через go и потом писать структурный код с циклами и без go. Какая разница, в какой низкоуровневый лисп и машкод превращается наш прекрасный структурный код.
1
|
||
|
Супер-модератор
|
||
| 27.12.2015, 10:01 | ||
|
2
|
||
|
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
|
||
| 29.12.2015, 20:10 | ||
|
Всегда Ваш. Самуил.
2
|
||
|
188 / 155 / 17
Регистрация: 18.12.2015
Сообщений: 179
|
||||||||||||
| 02.01.2016, 20:33 | ||||||||||||
|
Например, такой код не считается структурным (паскаль):
0
|
||||||||||||
|
Супер-модератор
|
||
| 02.01.2016, 20:47 | ||
|
В основе любого фанатизма (и структурного программирования в т.ч.) лежит желание не думать, а выполнять инструкции. Многим это нравится. Мне - не очень.
0
|
||
|
188 / 155 / 17
Регистрация: 18.12.2015
Сообщений: 179
|
|
| 02.01.2016, 21:19 | |
|
Catstail, я читал давно какую-то книжку, сейчас уже не помню половину.
Остаётся сослаться на википедию: https://ru.wikipedia.org/wiki/... _—_Якопини Суть в том, что разрешены 3 вида конструкций: 1) последовательное выполнение операторов; 2) оператор "if"; 3) цикл "пока". Что касается желания не думать, я только за. Если б у меня было желание сделать как можно больше работы, я бы писал только на ассемблере. Но, т.к. хочется написать программу как можно быстрее, приходится идти на компромиссы. Структурное программирование - один из способов писать программы быстрее. Его нужно освоить, оставить полезное и, собственно, идти дальше. Следовать как догме - и в мыслях не было.
0
|
|
|
Супер-модератор
|
||||
| 02.01.2016, 22:03 | ||||
|
rdt, теорема Бёма-Якопини - это замечательно. Но языки программирования развиваются в противоположном направлении. А так - все можно и на машине Тьюринга запрограммировать, только, боюсь, много желающих не найдется.
Да Бог с ним, со структурным программированием. На смену ему пришло ООП и уже устарело... А то, что код нужно писать структурировано и аккуратно, я понимал и без структурного программирования. Просто смешно, что несмотря на все проклятия в адрес GOTO, он либо стыдливо сохраняется в языке (и потихоньку используется; см. выше ), либо изживается из языка и заменяется несколькими уродливыми конструкциями (Java).
0
|
||||
|
1064 / 985 / 153
Регистрация: 10.08.2015
Сообщений: 5,368
|
|||
| 03.01.2016, 01:53 | |||
|
И еще позвольте полюбопытствовать, что же пришло на смену ООП?
0
|
|||
|
Супер-модератор
|
||
| 03.01.2016, 10:35 | ||
|
Действительная причина недовольства GOTO состоит в том, что излишние их (GOTO) нагромождения порождают нечитаемый код. 40-50 лет назад показалось, что в GOTO главное зло (убери GOTO - и будет счастье; в этом апологеты структурного программирования напоминали религиозных фанатиков и коммунистов). GOTO попытались убрать. И выяснилось: a) счастье все равно не наступило; б) возникли большие проблемы у макрогенераторов, компиляторов и т.п. И тогда решили оставить GOTO (в подавляющем большинстве языков), аргументируя это тем, что не всякий код на языке предназначен для человека, некоторые - для компилятора (человек их вообще не видит и "вреда" от GOTO нет; пример в Лиспе см. выше). Кстати, Вы же не будете утверждать, что Д.Кнут - лох, ничего не понимающий в программировании? Большинство его алгоритмов изложены в императивном стиле и изобилуют фразами типа: "Если условие соблюдается, перейти к п.7" Или даже проще и без затей "Перейти к п. 11". Теперь про ООП. В полной мере оно не устарело, но трансформируется на глазах. В частности, возрастает роль интерфейсов (интерфейсы позволяют реализовать наследование и полиморфизм проще и естественнее, чем классические механизмы). Но есть и гораздо более радикальные точки зрения (которых придерживаются, кстати, такие "киты", как П.Грэм и А.Степанов (кто не знает - это автор STL). Поймите меня правильно: я всего лишь либерал по убеждениям и считаю, что любые запреты в духе "Долой GOTO", "Ликвидируем богатых", и т.п. приводят к одинаково плохим результатам (в своих областях).
1
|
||
|
4709 / 4404 / 380
Регистрация: 12.05.2012
Сообщений: 3,101
|
|
| 03.01.2016, 10:46 | |
|
1
|
|
| 03.01.2016, 10:46 | |
|
Помогаю со студенческими работами здесь
20
В чем разница между этими массивами? В чем разница, между этими матрицами?
В чем разница между этими двумя документами ? В чем разница между этими двумя функциями? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|