|
Заблокирован
|
||||||||||||||||||
Мультидиспетчеризация в Лиспе19.02.2017, 00:50. Показов 6130. Ответов 107
Допустим, имеем иерархию
И что будет, если мы засунем в один мультиметод одновременно экземпляры типа и подтипа? Что должен сделать диспетчер в этом случае? Насколько надежным будет приложение, с использованием такого инструмента, учитывая то, что программисту трудно постоянно быть в напряжении и отслеживать возможные конфликты? И наконец, чем оправданна такая экстремальная забубенность? Есть ли реальные кейзы для этого, или это все сделано для галочки, и никто реально с этим сомнительным инструментом не связывается? Добавлено через 6 минут Добавлено через 5 минут
? Не является ли это все неоправданным переусложнением? Стоит ли овчинка выделки? Добавлено через 13 минут Короче говоря, хочется получить четкую и ясную схему расстановки приоритетов при возникновении разного рода конфликтов, и ясное семантическое обоснование этой схеме с точки зрения проектирования
0
|
||||||||||||||||||
| 19.02.2017, 00:50 | |
|
Ответы с готовыми решениями:
107
ООП в лиспе не обеспечивает синтаксическую абстракцию Clojure Мультидиспетчеризация не по типам |
|
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
|||||
| 19.02.2017, 14:06 | |||||
Но как показало обсуждение касательно логики collide, Io - не справился с задачей. И были предложены именно грязные хаки в обход ООП системы языка, которые ещё и не работают во многих необходимых ситуациях.Т.е. в Io вообще нет ничего принципиально нового, только лозунги. Посему Io никому и не нужен. Тогда как Common Lisp - production ready решение для комплексных задач.
1
|
|||||
|
Заблокирован
|
|||||||||
| 19.02.2017, 14:17 [ТС] | |||||||||
|
Наследование легко реализовать, но я не знаю всех тонкостей диспетчеризации по подтипам в лиспе, поэтому полный аналог я реализовать не могу, ты что спишь что-ли? Наивный, без учета указанных конфликтов -- 2 пальца об асфальт.
0
|
|||||||||
|
Заблокирован
|
||
| 19.02.2017, 14:21 [ТС] | ||
|
0
|
||
|
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
|||||||
| 19.02.2017, 14:31 | |||||||
|
После столкновения мы получаем объект - результат столкновения что-то с чем-то. Выражается элементарно. Нет никаких проблем. Не нужно никаких функций. Всё отлично моделируется средствами CLOS. А то когда видишь то, что не понимаешь - это всегда выглядит непонятно и "неконсистентно", но это не означает что так оно и есть.Добавлено через 1 минуту Добавлено через 57 секунд Добавлено через 6 минут
0
|
|||||||
|
Заблокирован
|
||||||||
| 19.02.2017, 14:33 [ТС] | ||||||||
|
Эта вот хрень, которая не делает ничего, помимо того что дублирует нативный Integer, или что там у них
Добавлено через 1 минуту
0
|
||||||||
|
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
||
| 19.02.2017, 14:34 | ||
|
0
|
||
|
Заблокирован
|
|||
| 19.02.2017, 14:36 [ТС] | |||
|
Добавлено через 1 минуту
0
|
|||
|
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
|||
| 19.02.2017, 14:38 | |||
|
Добавлено через 36 секунд
0
|
|||
|
Заблокирован
|
|
| 19.02.2017, 14:40 [ТС] | |
|
0
|
|
|
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
|||
| 19.02.2017, 14:42 | |||
|
Вот тебе в помощь: http://www.artima.com/weblogs/... ead=101605. Гвидо сделал на Python. Но нужно понимать, что его мультиметоды - хак, в обход существующей примитивной реализации ООП (такой же как в Io). Фактически с т.з. языка - функция. Но даже такое решение принимается. Добавлено через 1 минуту
0
|
|||
|
Заблокирован
|
||||||||
| 19.02.2017, 14:43 [ТС] | ||||||||
|
Кроме того, сомнительно, что так это просто. Покажи как построить
0
|
||||||||
|
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
||
| 19.02.2017, 14:44 | ||
|
0
|
||
|
Заблокирован
|
||
| 19.02.2017, 14:45 [ТС] | ||
|
0
|
||
|
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
|
| 19.02.2017, 14:45 | |
|
0
|
|
|
Заблокирован
|
||
| 19.02.2017, 14:47 [ТС] | ||
|
0
|
||
|
Супер-модератор
|
||
| 19.02.2017, 14:48 | ||
|
0
|
||
|
Заблокирован
|
||
| 19.02.2017, 14:53 [ТС] | ||
|
0
|
||
|
Супер-модератор
|
||||||||
| 19.02.2017, 14:55 | ||||||||
0
|
||||||||
|
Заблокирован
|
|||
| 19.02.2017, 14:58 [ТС] | |||
|
Добавлено через 48 секунд
0
|
|||
| 19.02.2017, 14:58 | |
|
Мультидиспетчеризация и полиморфизм Структуры на Лиспе Пятнашки на лиспе Списки на Лиспе «Организация вычислений в Лиспе» Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
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.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|