|
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
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|