Re[10]: Следим за D
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 01.06.09 11:03
Оценка: -1
Здравствуйте, z00n, Вы писали:

E>>Продолжая в том же духе, можно сказать, что раз Степанов свои работы писал на английском, то истоки его работ нужно искать в то время, когда он занимался изучением английского языка.


Z>Нет, нельзя.


В идеях STL для Ada и C++ ключевую роль играют пары итераторов (параметризуемых типом элемента последовательности). Покажите таковую в работе о Scheme.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[7]: Следим за D
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.06.09 12:40
Оценка:
Здравствуйте, eao197, Вы писали:

E>Да где уж мне понять о чем работа.


+1

E>И как один итератор в работе о Scheme вдруг превратился в пару итераторов в работе об Ada.


"Два" — это в смысле begin и end.

E>И как отсуствие описания контейнеров в работе о Scheme вдруг стало описанием целой серии родственных контейнеров в Ada.


Производим поиск по "ADT" и убеждаемся в обратном.

E>И как структуры-итераторы из Ada вдруг стали объектами-итераторами из C++.


Вот удивительно! А это не зависит от способа представления АТД в языке?

E> И почему "Higher Order Programming" вдруг стало главной идеей C++ STL, без учета тучи обобщенных STL-евских контейнеров (и операций над ними на основе пары итераторов, а не одного итератора из работы о Scheme).


Дык особенности и родили STL, а не что-то другое. А уникальной библиотека как раз стала из-за того, что это была первая известная библиотека эксплуатирующая тот самый "Higher Order Programming".
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Следим за D
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 01.06.09 13:01
Оценка:
Здравствуйте, VladD2, Вы писали:

E>> И почему "Higher Order Programming" вдруг стало главной идеей C++ STL, без учета тучи обобщенных STL-евских контейнеров (и операций над ними на основе пары итераторов, а не одного итератора из работы о Scheme).


VD>Дык особенности и родили STL, а не что-то другое.


А теперь поднимаемся в вершину ветки и видим, что речь шла именно об итераторах (которые парами) и их замены на более многообещающие Ranges. А пары итераторов как раз и возникли из-за особенностей обобщенного программирования в Ada и C++.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[11]: Следим за D
От: z00n  
Дата: 01.06.09 14:48
Оценка: +1
Здравствуйте, eao197, Вы писали:

E>В идеях STL для Ada и C++ ключевую роль играют пары итераторов (параметризуемых типом элемента последовательности). Покажите таковую в работе о Scheme.

Давайте лучше вы покажете, где Степанов сказал что "В идеях STL для Ada и C++ ключевую роль играют пары итераторов (параметризуемых типом элемента последовательности)". Идеи, кстати, самим Степановым датируются 70-ыми годами.
Re[12]: Следим за D
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 01.06.09 14:59
Оценка:
Здравствуйте, z00n, Вы писали:

E>>В идеях STL для Ada и C++ ключевую роль играют пары итераторов (параметризуемых типом элемента последовательности). Покажите таковую в работе о Scheme.


Z>Давайте лучше вы покажете, где Степанов сказал что "В идеях STL для Ada и C++ ключевую роль играют пары итераторов (параметризуемых типом элемента последовательности)".


Ну <censored>, какой интересный расклад получается. Вначале FR заговорил о Ranges, которые Александреску ввел в D вместо C++ных итераторов. И я сказал об STL именно с точки зрения итераторов -- мол, не было бы опыта их использования в C++, возможно в D не было бы сейчас Ranges. И что идеи итераторов в C++ пришли прямиком из Ada. Тут подключаются эрудиты и утверждают, что идеи эти пришли еще из Scheme. Но показать их в Scheme отказываются.

Что до ключевой идеи, то это не Степанов сказал, а я. Да, по-моему, контейнеры и итераторы -- это краеугольные камни C++ного STL (времен стандарта 98-го года). Причем итераторы, наверное, даже краеугольнее, т.к. именно из-за них в C++ных контейнерах есть методы begin()/end(), а не методы each/inject/map.

Если вас эта точка зрения не устраивает, то разговор можно закончить, списав все на мою воинствующую безграмотность.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[13]: Следим за D
От: z00n  
Дата: 01.06.09 15:21
Оценка: +1
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, z00n, Вы писали:


E>>>В идеях STL для Ada и C++ ключевую роль играют пары итераторов (параметризуемых типом элемента последовательности). Покажите таковую в работе о Scheme.


Z>>Давайте лучше вы покажете, где Степанов сказал что "В идеях STL для Ada и C++ ключевую роль играют пары итераторов (параметризуемых типом элемента последовательности)".


E>Ну ёптыть, какой интересный расклад получается. Вначале FR заговорил о Ranges, которые Александреску ввел в D вместо C++ных итераторов. И я сказал об STL именно с точки зрения итераторов -- мол, не было бы опыта их использования в C++, возможно в D не было бы сейчас Ranges. И что идеи итераторов в C++ пришли прямиком из Ada. Тут подключаются эрудиты и утверждают, что идеи эти пришли еще из Scheme. Но показать их в Scheme отказываются.


Напоминаю:
Вы> STL-ю уже скоро двадцать лет исполнится (если мне не изменяет склероз, Степанов начал работать над его идеями еще в конце 80-х, но для Ada)
Я> Вообщето первый пробраз STL Степанов написал для Scheme(!) в 86-ом.
И Степанов говорит, и вообще так принято считать, что идеей STL является отделение алгоритмов от контейнеров.
Re[14]: Следим за D
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 01.06.09 16:44
Оценка: +1
Здравствуйте, z00n, Вы писали:

Z>Напоминаю:

Вы>> STL-ю уже скоро двадцать лет исполнится (если мне не изменяет склероз, Степанов начал работать над его идеями еще в конце 80-х, но для Ada)
Я>> Вообщето первый пробраз STL Степанов написал для Scheme(!) в 86-ом.
Z>И Степанов говорит, и вообще так принято считать, что идеей STL является отделение алгоритмов от контейнеров.

Ну да, итератор, который у Степанова получился в Ada и C++ -- это не идея, это так, мелкая деталь реализации.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[14]: Следим за D
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 01.06.09 16:59
Оценка:
Здравствуйте, z00n, Вы писали:

Z>И Степанов говорит, и вообще так принято считать, что идеей STL является отделение алгоритмов от контейнеров.


Вообще-то, это не столько идея, сколько цель.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[9]: Следим за D
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.06.09 17:33
Оценка:
Здравствуйте, eao197, Вы писали:

E>А теперь поднимаемся в вершину ветки и видим, что речь шла именно об итераторах (которые парами) и их замены на более многообещающие Ranges. А пары итераторов как раз и возникли из-за особенностей обобщенного программирования в Ada и C++.


STL и работа Степанова — это не итераторы и не про итераторы. Итераторы там — это абстракция списка в том виде в котором она может быть обобщена в С++.
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Следим за D
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 01.06.09 17:58
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, eao197, Вы писали:


E>>А теперь поднимаемся в вершину ветки и видим, что речь шла именно об итераторах (которые парами) и их замены на более многообещающие Ranges. А пары итераторов как раз и возникли из-за особенностей обобщенного программирования в Ada и C++.


VD>STL и работа Степанова — это не итераторы и не про итераторы.


Зато у нас с FR разговор был об STL-ных итераторах и Ranges из D, как более совершенной альтернативы итераторам. И в C++ итераторы были введены Степановым на основании его работы над Ada-реализацией.

VD>Итераторы там — это абстракция списка в том виде в котором она может быть обобщена в С++.


Абстракцией какого списка служит, например, istream_iterator?


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[15]: Следим за D
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.06.09 18:00
Оценка:
Здравствуйте, eao197, Вы писали:

E>Ну да, итератор, который у Степанова получился в Ada и C++ -- это не идея, это так, мелкая деталь реализации.


Именно так. В динамических ФЯ к которым относится Схема они просто не очень нужны. Там все базируется на списках.
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: Следим за D
От: z00n  
Дата: 02.06.09 06:54
Оценка: +1
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, z00n, Вы писали:


Z>>И Степанов говорит, и вообще так принято считать, что идеей STL является отделение алгоритмов от контейнеров.


E>Вообще-то, это не столько идея, сколько цель.

Это, разумеется, ваше мнение — подкрепить его, например, цитатой из Степанова вы не можете.
Re[16]: Следим за D
От: Курилка Россия http://kirya.narod.ru/
Дата: 02.06.09 07:00
Оценка:
Здравствуйте, z00n, Вы писали:

Z>Здравствуйте, eao197, Вы писали:


E>>Здравствуйте, z00n, Вы писали:


Z>>>И Степанов говорит, и вообще так принято считать, что идеей STL является отделение алгоритмов от контейнеров.


E>>Вообще-то, это не столько идея, сколько цель.

Z>Это, разумеется, ваше мнение — подкрепить его, например, цитатой из Степанова вы не можете.

Ммм, а что на твой взляд было его целью? И чем идея у тебя от цели отличается?
Или чисто спор о терминах?
Re[16]: Следим за D
От: MasterZiv СССР  
Дата: 02.06.09 20:39
Оценка:
VladD2 wrote:

> Именно так. В динамических ФЯ к которым относится Схема они просто не

> очень нужны. Там все базируется на списках.

Утверждение сомнительное. Итераторы в первую очередь ограничивают
обрабатываемую подпоследовательность. Как список это может сделать ?
Я не знаю, как в схеме, а в common lisp аналоги итераторов есть,
там все последовательности отображены на множество целых неотрицательных
чисел, и два необязательных индекса начала и конца обрабатываемого
диапазона входят в число параметров всех функций обработки последовательностей.
Это — прямой аналог итераторов, хотя сделано всё без дешёвых понтов,
железобетонно и удобно.

Я подозреваю, что в схеме просто нет ничего, кроме списков, из
последовательностей. Т.е. обобщённых последовательностей нет вообще.
Posted via RSDN NNTP Server 2.1 beta
Re[17]: Следим за D
От: VladD2 Российская Империя www.nemerle.org
Дата: 03.06.09 04:15
Оценка: 1 (1)
Здравствуйте, MasterZiv, Вы писали:

MZ>VladD2 wrote:


>> Именно так. В динамических ФЯ к которым относится Схема они просто не

>> очень нужны. Там все базируется на списках.

MZ>Утверждение сомнительное. Итераторы в первую очередь ограничивают

MZ>обрабатываемую подпоследовательность. Как список это может сделать ?

Последовательность и список — это одно и тоже. Все что нужно уметь с ними делать для унифицированной обработки — это получить голову и хвост. Остальные операции реализуются на них. CAR CDR как раз и есть встроенные возможности любого диалекта лиспа решающие данный вопрос.

MZ>Я не знаю, как в схеме, а в common lisp аналоги итераторов есть,

MZ>там все последовательности отображены на множество целых неотрицательных
MZ>чисел, и два необязательных индекса начала и конца обрабатываемого
MZ>диапазона входят в число параметров всех функций обработки последовательностей.

Ну, и как это применить к списку у которого попросту нет индексированного доступа?

MZ>Это — прямой аналог итераторов, хотя сделано всё без дешёвых понтов,

MZ>железобетонно и удобно.

Как раз итераторы С++ не предполагают наличия индексного доступа (кроме одного поддтипа, который трудно назвать итератором).

MZ>Я подозреваю, что в схеме просто нет ничего, кроме списков, из

MZ>последовательностей. Т.е. обобщённых последовательностей нет вообще.

У тебя весьма извращенное понимание обобщенности. "Обобщенный означает переход от частного к общему. Индексированный доступ — это частность, а вот понятие списка — упорядоченное множество — это более общее понятие.

Теперь почему для динамических языков введение четкого интерфейса не имеет особого смысла...
В динамических языках обычно все функции автоматически становятся обобщенными. Достаточно описать функции доступа используемые в алгоритме, как алгоритм автоматически становится обобщенным.
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Следим за D
От: FR  
Дата: 03.06.09 04:45
Оценка:
Здравствуйте, Adriano, Вы писали:

A>Boost.RangeEx


Как я понял это пока не входит в boost ?

A>и что бы не писать кучу скобочек:

A>filter1(transformer(filter2(any_adaptor(range))));

A>имеется оператор '|'

A>range | any_adaptor
A> | filter2
A> | transformer
A> | filter1;
A>Удобно.

Ну в D еще удобней
Хотя конечно тоже лучше итераторов.

A>На последней BoostСon Александреску выступал на эту тему тута. Плюсовики понимают, что концепция итераторов морально устарела и ни что не мешает, где нибудь сбоку, создать Range-based design.


Это читал.
Осталось еще один шаг сделать, до генераторов с yield
Re[18]: Следим за D
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 03.06.09 04:52
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>В динамических языках обычно все функции автоматически становятся обобщенными. Достаточно описать функции доступа используемые в алгоритме, как алгоритм автоматически становится обобщенным.


Тогда может ты объяснишь, с чем ты был не согласен вот здесь: http://www.rsdn.ru/forum/philosophy/3389403.1.aspx
Автор: eao197
Дата: 14.05.09
?


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[11]: Следим за D
От: FR  
Дата: 03.06.09 04:55
Оценка:
Здравствуйте, eao197, Вы писали:

E>Зато у нас с FR разговор был об STL-ных итераторах и Ranges из D, как более совершенной альтернативы итераторам. И в C++ итераторы были введены Степановым на основании его работы над Ada-реализацией.


Зря наверно про функциональщину я писал

Я уже давал ссылку на более близкую чем функциональщина (при этом мало уступающую в выразительности) родню итератором и ranges это итераторы из CLU http://en.wikipedia.org/wiki/CLU_programming_language похоже Степанов о них все-таки не знал, тогда сразу могло получится гораздо лучше.
Re[16]: Следим за D
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 03.06.09 05:28
Оценка:
Здравствуйте, z00n, Вы писали:

Z>>>И Степанов говорит, и вообще так принято считать, что идеей STL является отделение алгоритмов от контейнеров.


E>>Вообще-то, это не столько идея, сколько цель.

Z>Это, разумеется, ваше мнение

Разумеется мое.

Отделение алгоритмов от контейнеров -- это одна из идей обобщенных алгоритмов:

The most important technical idea is that of generic algorithms, which are a means of
providing functionality in a way that abstracts away from details of representation and basic
operations.

А STL -- это библиотека, целью которой является воплощение замыслов разработчиков в реальный код.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[3]: Следим за D
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 03.06.09 05:44
Оценка: :)
Здравствуйте, eao197, Вы писали:

FR>>Во всяком случае STL'ным итераторам и алгоритмам такое комбинирование в стиле

FR>>функциональщины (уже почти все аналоги основных ФВП есть) и не снится.

E>Да ладно, STL-ю уже скоро двадцать лет исполнится (если мне не изменяет склероз, Степанов начал работать над его идеями еще в конце 80-х, но для Ada). Не было бы никаких range, если бы не было пятнадцати лет широчайшего использования STL-ных итераторов.


Я был не прав. В реализации Степанова для Ada итераторы были совсем другие -- там не было пар итераторов. Пары итераторов возникли уже в C++. Из работ на Ada в C++ пришли, разве что, слои абстракции.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.