Re[4]: И снова Дельфи против СИ++
От: FR  
Дата: 24.01.11 06:51
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Итераторы являются замыканиями? Что то не уловил глубину мысли. Ты closures с continuations, случаем, не попутал?


Ну замыкание в реализации итератора явно присутствует, во первых итератор держит в себе ссылку на контейнер во вторых позицию
в контейнере, вот простейшая реализация на OCaml

let get_iter l =
  let lref = ref l in
    let next () = 
        match !lref with 
          | [] -> None
          | a::b -> (lref := b; Some a)
  in next
  
let rec print it = 
  match it () with
    | Some x -> (Printf.printf "%d\n" x; print it)
    | None -> ()
    ;;

print (get_iter [1; 2; 3; 4])
Re[6]: И снова Дельфи против СИ++
От: jazzer Россия Skype: enerjazzer
Дата: 24.01.11 06:54
Оценка:
Здравствуйте, Константин Л., Вы писали:

КЛ>Здравствуйте, lazy_walrus, Вы писали:


_>>Здравствуйте, Константин Л., Вы писали:


КЛ>>>ну я. какая разница. предвосхищая вопросы — если чел пялился в исходники неделю и в 2011 задает такие вопросы и делает такие предположения, значит он зря потратил своё время


_>>А почему зря? Человек с опытом программирования на Delphi изучил исходники STL, расширил свой кругозор, у него возникли понятные вопросы почему STL сделан так а не иначе, и нельзя ли сделать лучше.


КЛ>подожди, ты всерьез считаешь, что после недельного изучения stl нормальный человек будет утверждать что (курсив мой, ибо а как иначе?)


КЛ>

КЛ>ее можно реализовать при помощи чистого ООП не потеряв ничего в фичах и гибкости


КЛ>Я считаю, что чел смотрел неделю и ничего в итоге не понял


Если человек всю жизнь писал на Дельфях — это естественно, не?
Я имею в виду его вопрос, а не то, что ничего не понял.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[5]: И снова Дельфи против СИ++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 24.01.11 10:15
Оценка:
Здравствуйте, FR, Вы писали:

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


I>>Шаблоны это не ооп ?


FR>Нет конечно концепция ортогональная ООП.


А по подробнее ?
Re[3]: И снова Дельфи против СИ++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 24.01.11 10:15
Оценка:
Здравствуйте, FR, Вы писали:

I>>Что значит чистое ООП ? STL вдруг перестала быть ООП ?


FR>Никогда и не была. По сути концепция целнотянутая из ФП.


С таким же успехом можно всё ООП объявить цельнотянутым из ФП.
Re[6]: И снова Дельфи против СИ++
От: FR  
Дата: 24.01.11 10:27
Оценка: +1
Здравствуйте, Ikemefula, Вы писали:

I>>>Шаблоны это не ооп ?


FR>>Нет конечно концепция ортогональная ООП.


I>А по подробнее ?


Они реализуют совершенно другую концепцию — обобщенное программирование которое никакого отношения к ООП не имеет и может реализовыватся как в ООП языках например C++ или D так и в процедурных например в Ada так и в функциональных например Hope.
Другая сторона шаблонов — метапрограммирование также ортогональна ООП.
Re[4]: И снова Дельфи против СИ++
От: FR  
Дата: 24.01.11 10:34
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>С таким же успехом можно всё ООП объявить цельнотянутым из ФП.


Нет, автор STL не скрывает что прототип был на схеме http://www.stepanovpapers.com/history%20of%20STL.pdf
Re[5]: И снова Дельфи против СИ++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 24.01.11 10:58
Оценка:
Здравствуйте, FR, Вы писали:

I>>С таким же успехом можно всё ООП объявить цельнотянутым из ФП.


FR>Нет, автор STL не скрывает что прототип был на схеме http://www.stepanovpapers.com/history%20of%20STL.pdf


"The Scheme work led to a grant to produce a generic library in Ada"

Начинали на схеме, потом была Ада, потом С++ А если я кое что похожее начинал на асме, не зная ничего про ФП, стало быть функции цельнотянутые из императивного ассемблера ?
Re[7]: И снова Дельфи против СИ++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 24.01.11 10:59
Оценка:
Здравствуйте, FR, Вы писали:

FR>Они реализуют совершенно другую концепцию — обобщенное программирование которое никакого отношения к ООП не имеет и может реализовыватся как в ООП языках например C++ или D так и в процедурных например в Ada так и в функциональных например Hope.


"обобщенное программирование" это всего лишь полиморфизм, который, к слову, в с++ оформлен достаточно жиденько.
Re[6]: И снова Дельфи против СИ++
От: FR  
Дата: 24.01.11 11:07
Оценка: +1
Здравствуйте, Ikemefula, Вы писали:

I>"The Scheme work led to a grant to produce a generic library in Ada"


I>Начинали на схеме, потом была Ада, потом С++ А если я кое что похожее начинал на асме, не зная ничего про ФП, стало быть функции цельнотянутые из императивного ассемблера ?


А читать с начала не пробовал?

In the late 70’s I became aware of John Backus’s work on FP1. While his idea of programming with functional forms struck me as essential, I realized that his attempt to permanently fix the number of functional forms was fundamentally wrong. The number of functional forms – or as I call them now – generic algorithms is always growing as we discover new algorithms. In 1980 together with Dave Musser and Deepak Kapur I started working on a language Tecton to describe algorithms defined on algebraic theories. The language was functional since I did not realize at the time that memory and pointers were a fundamental part of programming. I also spent time studying Aristotle and his successors and that lead me to a better understanding of fundamental operations on objects like equality and copying and the relation between whole and part.


Тут он прямо пишет что все цельнотянуто из FP но ему был нужен более низкий уровень, что он успешно и осуществил реализовав STL.
Re[9]: И снова Дельфи против СИ++
От: Хвост  
Дата: 24.01.11 11:11
Оценка:
Здравствуйте, Michael7, Вы писали:

M>А что смешного? Зачем тормозить научные вычисления использованием C++ вместо Си или Fortran?


Ути какой толстый Смотри сюда: Blitz++
People write code, programming languages don't.
Re[8]: И снова Дельфи против СИ++
От: FR  
Дата: 24.01.11 11:12
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>"обобщенное программирование" это всего лишь полиморфизм, который, к слову, в с++ оформлен достаточно жиденько.


Чуть больше http://en.wikipedia.org/wiki/Generic_programming
Re[7]: И снова Дельфи против СИ++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 24.01.11 11:16
Оценка:
Здравствуйте, FR, Вы писали:

FR>

FR>In the late 70’s I became aware of John Backus’s work on FP1. While his idea of programming with functional forms struck me as essential, I realized that his attempt to permanently fix the number of functional forms was fundamentally wrong. The number of functional forms – or as I call them now – generic algorithms is always growing as we discover new algorithms. In 1980 together with Dave Musser and Deepak Kapur I started working on a language Tecton to describe algorithms defined on algebraic theories. The language was functional since I did not realize at the time that memory and pointers were a fundamental part of programming. I also spent time studying Aristotle and his successors and that lead me to a better understanding of fundamental operations on objects like equality and copying and the relation between whole and part.


FR>Тут он прямо пишет что все цельнотянуто из FP но ему был нужен более низкий уровень, что он успешно и осуществил реализовав STL.


С таким подходом вообще все получается цельнотянутым из ФП
Re[9]: И снова Дельфи против СИ++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 24.01.11 11:18
Оценка:
Здравствуйте, FR, Вы писали:

I>>"обобщенное программирование" это всего лишь полиморфизм, который, к слову, в с++ оформлен достаточно жиденько.


FR>Чуть больше http://en.wikipedia.org/wiki/Generic_programming


Чем это отличается от параметрического полиморфизма ?
Re[8]: И снова Дельфи против СИ++
От: FR  
Дата: 24.01.11 11:24
Оценка:
Здравствуйте, Ikemefula, Вы писали:

FR>>Тут он прямо пишет что все цельнотянуто из FP но ему был нужен более низкий уровень, что он успешно и осуществил реализовав STL.


I>С таким подходом вообще все получается цельнотянутым из ФП


Нет не получается, автор тут сам прямо говорит откуда взял.
Re[10]: И снова Дельфи против СИ++
От: FR  
Дата: 24.01.11 11:27
Оценка:
Здравствуйте, Ikemefula, Вы писали:

FR>>Чуть больше http://en.wikipedia.org/wiki/Generic_programming


I>Чем это отличается от параметрического полиморфизма ?


Тем что параметрический полиморфизм это один из способов обобщенного программирования.
Re[11]: И снова Дельфи против СИ++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 24.01.11 11:32
Оценка:
Здравствуйте, FR, Вы писали:

I>>Чем это отличается от параметрического полиморфизма ?


FR>Тем что параметрический полиморфизм это один из способов обобщенного программирования.


По твоей же ссылке, кстати говоря, "Generic programming is a style of computer programming in which algorithms are written in terms of to-be-specified-later types that are then instantiated when needed for specific types provided as parameters. This approach, pioneered by Ada in 1983, permits writing common functions or types that differ only in the set of types on which they operate when used, thus reducing duplication"

"Ada is a structured, statically typed, imperative, wide-spectrum, and object-oriented high-level computer programming language, extended from Pascal and other languages. "

Ты точно это хотел сказать ?

Если STL это обобщенное, то растет это из Ада, что следует из твоей ссылки т.е. императивщина. Ну а схемы здесь просто как вариант реализации.
Re[12]: И снова Дельфи против СИ++
От: FR  
Дата: 24.01.11 11:50
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>По твоей же ссылке, кстати говоря, "Generic programming is a style of computer programming in which algorithms are written in terms of to-be-specified-later types that are then instantiated when needed for specific types provided as parameters. This approach, pioneered by Ada in 1983, permits writing common functions or types that differ only in the set of types on which they operate when used, thus reducing duplication"


I>"Ada is a structured, statically typed, imperative, wide-spectrum, and object-oriented high-level computer programming language, extended from Pascal and other languages. "


I>Ты точно это хотел сказать ?


I>Если STL это обобщенное, то растет это из Ада, что следует из твоей ссылки т.е. императивщина. Ну а схемы здесь просто как вариант реализации.


Оно растет не только из Ады там же и ML указан и не указаны те же Hope или CLU (когда еще Ады и в проекте не было там уже были параметризованные типы). Ада просто первый достаточно массовый язык с обобщенным программированием.
Обобщенное программирование ортогонально императивщине и функциональщине.
Re[13]: И снова Дельфи против СИ++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 24.01.11 15:38
Оценка: -3
Здравствуйте, FR, Вы писали:

I>>Если STL это обобщенное, то растет это из Ада, что следует из твоей ссылки т.е. императивщина. Ну а схемы здесь просто как вариант реализации.


FR>Оно растет не только из Ады там же и ML указан и не указаны те же Hope или CLU (когда еще Ады и в проекте не было там уже были параметризованные типы). Ада просто первый достаточно массовый язык с обобщенным программированием.

FR>Обобщенное программирование ортогонально императивщине и функциональщине.

Итого — STL это обобобщенное программирование, которое реализовано в ОО-языке с помощью ОО-инструмента — шаблонов
Re[14]: И снова Дельфи против СИ++
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 24.01.11 15:42
Оценка: +4
Здравствуйте, Ikemefula, Вы писали:

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


I>>>Если STL это обобщенное, то растет это из Ада, что следует из твоей ссылки т.е. императивщина. Ну а схемы здесь просто как вариант реализации.


FR>>Оно растет не только из Ады там же и ML указан и не указаны те же Hope или CLU (когда еще Ады и в проекте не было там уже были параметризованные типы). Ада просто первый достаточно массовый язык с обобщенным программированием.

FR>>Обобщенное программирование ортогонально императивщине и функциональщине.

I>Итого — STL это обобобщенное программирование, которое реализовано в ОО-языке с помощью ОО-инструмента — шаблонов


Шаблоны не являются ОО-инструментом ну вообще никак. Их можно отнести к МП.
Re[15]: И снова Дельфи против СИ++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 24.01.11 17:34
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Шаблоны не являются ОО-инструментом ну вообще никак. Их можно отнести к МП.


Ну да, полиморфизм к ООП никакого отношения не имеет
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.