|
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
||||
| 19.05.2015, 02:59 | ||||
Добавлено через 2 минуты Добавлено через 12 минут Dennis Ritchie, полистал сейчас phobos. Это просто пипец. Punks not dead. Куча закомменченных сорцов и сплошные комменты - Not yet implemented. Код написан отвратно. 15 лет языку. Это победа, я считаю
0
|
||||
| 19.05.2015, 02:59 | |
|
Ответы с готовыми решениями:
133
Common Lisp vs D C++ vs Common Lisp: кодогенерация, метапрограммирование Книги или другой источник, где описана история версий Lisp и Common Lisp |
|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
||||||||||
| 19.05.2015, 03:16 | ||||||||||
![]()
0
|
||||||||||
|
Модератор
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
|
||||||||||||
| 19.05.2015, 07:16 | ||||||||||||
паааарсить выражение таким образом - это сильно! Вместо ограничения скоупа Дениска ограничивает программистов в написании предиката... Ему так удобнее... А если там будет что-то вроде
Или
В общем, это костыль костылей. Ну да для D - сойдёт. Добавлено через 1 минуту http://rextester.com/THII61903
0
|
||||||||||||
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
||
| 19.05.2015, 08:25 | ||
|
0
|
||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
||||||
| 19.05.2015, 10:50 | ||||||
![]() Для каждого типа заново писать фильтр?
0
|
||||||
|
Модератор
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
|
|
| 19.05.2015, 14:27 | |
|
korvin_, ну это поправимо. Куда хуже то, что скоуп неограничен
![]() http://rextester.com/EOXVW95995 Добавлено через 6 минут Собственно, можно так. Но это тоже бред... http://rextester.com/JOLD76412 Добавлено через 2 минуты В нормальном языке я применил бы обычный плюсовый подход, вроде того: http://rextester.com/XNDFY20437 Но это же не Денискин путь, ему нужно генерить функцию из строки, это же миксины, это же круто...
0
|
|
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
||
| 19.05.2015, 15:58 | ||
|
0
|
||
|
Модератор
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
|
||||||
| 19.05.2015, 17:09 | ||||||
|
korvin_, да-да. Потому есть вариант генерить миксином литерал функции из строки, но опять же. Либо передавать имя ещё одним параметром, либо хз как там.
Овчинка не стоит выделки. Добавлено через 4 минуты Есть вариант использовать общую часть объявления
http://rextester.com/PKTDT31004
0
|
||||||
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|
| 19.05.2015, 17:17 | |
|
Я правильно понял, что миксины, по-лисповому говоря, негигиеничные, и что gensym-а нет?
0
|
|
|
Модератор
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
|
||||||
| 19.05.2015, 17:32 | ||||||
|
Не по теме: helter, как не для лиспера лучше расшифруй) Добавлено через 3 минуты Про gensym почитал. Не думаю, что это есть в D, но это легко реализуется в Руби. Добавлено через 6 минут Вроде того:
0
|
||||||
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
||||||||||||||||
| 19.05.2015, 17:40 | ||||||||||||||||
|
В негигиеничных макросах могут захватываться окружающие символы, что может приводить к конфликтам. По идее, об этом надо подробно говорить, но я только приведу пример (из Let Over Lambda - там, соответственно, есть подробно). Пусть макрос nif (numeric if) возвращает результат одного из трёх выражений в зависимости от знака аргумента. Наивная реализация такая:
0
|
||||||||||||||||
|
Модератор
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
|
|
| 19.05.2015, 17:43 | |
|
helter, угу, ясно. В Руби это действительно не найдёт применения, так как там нет макросов. А функции и блоки обладают закрытыми скоупами.
Нет, всё же не совсем так. Строка должна быть синтаксически законченным выражением на D
0
|
|
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
||||||
| 19.05.2015, 17:44 | ||||||
|
Да, вот неглючное определение:
Добавлено через 1 минуту А макрос - это просто обычная функция, которая преобразует код где-то во время компиляции. Ведь код есть данные, и макрос просто перекраивает списки.
0
|
||||||
|
Модератор
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
|
||
| 19.05.2015, 17:50 | ||
|
helter, жаль, что не могу здесь поставить спасибо. Инфа действительно интересная.
Добавлено через 4 минуты Что интересно - на офф.сайте D написано следующее:
0
|
||
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
||
| 19.05.2015, 17:59 | ||
|
0
|
||
|
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
||
| 19.05.2015, 18:08 | ||
|
Добавлено через 5 минут Но я почти уверен, что в D как-то можно это сделать, развернуть миксин в лямбде без замыканий, например. Но такое-то метапрограммирование из приятного занятия в Lisp превращается а адову ссанину в D.
0
|
||
|
Модератор
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
|
||
| 19.05.2015, 18:14 | ||
|
http://rextester.com/JOLD76412 Правда, к скоупу самого миксина это не имеет отношения. Просто литерал функции не захватывает переменные из внешнего: http://rextester.com/ZQX2886
0
|
||
|
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
|||||||
| 19.05.2015, 18:16 | |||||||
0
|
|||||||
|
Модератор
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
|
||
| 19.05.2015, 18:40 | ||
|
Так что вариант Дэ-ниски можно оптимизировать как-то так. Но выглядит всё равно мерзко и запитано от костылей.
http://rextester.com/OFEVBM18747 Добавлено через 1 минуту nullxdth, я и так делал. Тогда встаёт вопрос как передавать имя входной переменной. Вот, ссылкой выше я сделал передачей в шаблон ещё одного параметра. Но всё равно - это же такая кривизна подхода. А кто-то этим гордится ![]() Добавлено через 1 минуту Добавлено через 19 минут Или так: http://rextester.com/YKBCE95197 Я бы сказал, чем там пахнет. Но так как D, пояснения не нужны.
0
|
||
|
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
|||
| 19.05.2015, 18:52 | |||
|
Ну и it протащить параметром, как ты это сделал (по-уродски, строчным литералом). Добавлено через 3 минуты
0
|
|||
| 19.05.2015, 18:52 | |
|
Common lisp Common Lisp Common lisp ООП Common Lisp
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|