Re[16]: Динамическая типизация
От: IT Россия linq2db.com
Дата: 28.08.06 15:49
Оценка:
Здравствуйте, FR, Вы писали:

IT>>Анонимные методы тоже не более чем синтаксических сахар, т.е. следуя логике лямбда — это синтаксических сахар даже не по отношению к анонимным методам, а вообще ещё к C# 1.0. Т.е. опять же просто более удобная запись, на самом деле ничего военного.


FR>Опять забываешь про замыкания.


Ни в коем случае. И что значит опять? Замыкания в C# 2.0 — это тоже сахар. Достаточно глянуть рефлектором как они реализуются. Результирующий код не использует ничего из того, чего не было в CLR 1.0 и появилось в CLR 2.0. Это просто сахар.
Если нам не помогут, то мы тоже никого не пощадим.
Re[17]: Динамическая типизация
От: FR  
Дата: 28.08.06 16:34
Оценка:
Здравствуйте, IT, Вы писали:

FR>>Опять забываешь про замыкания.


IT>Ни в коем случае. И что значит опять? Замыкания в C# 2.0 — это тоже сахар. Достаточно глянуть рефлектором как они реализуются. Результирующий код не использует ничего из того, чего не было в CLR 1.0 и появилось в CLR 2.0. Это просто сахар.


Совершенно согласен, я вот тоже смотрел дизассемлером как классы реализуются в C++, результирующий год не использует ничего из того, чего нельзя сделать в процедурном стиле, так что весь ООП это это просто сахар.
Re[15]: Динамическая типизация
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.08.06 16:59
Оценка:
Здравствуйте, IT, Вы писали:

IT>Анонимные методы тоже не более чем синтаксических сахар, т.е. следуя логике лямбда — это синтаксических сахар даже не по отношению к анонимным методам, а вообще ещё к C# 1.0. Т.е. опять же просто более удобная запись, на самом деле ничего военного.


При некоторой общности — да. Но реально в лямбдах имнно подправлен синтаксис, а анонимные методы потребовали серьезной доработки компилятора.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Динамическая типизация
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.08.06 16:59
Оценка:
Здравствуйте, FR, Вы писали:

FR>Опять забываешь про замыкания.


По большому счету они эмулируются классами и методами. Так в общем-то в C# и сделано.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[18]: Динамическая типизация
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.08.06 17:03
Оценка: :)
Здравствуйте, FR, Вы писали:

FR>Совершенно согласен, я вот тоже смотрел дизассемлером как классы реализуются в C++, результирующий год не использует ничего из того, чего нельзя сделать в процедурном стиле, так что весь ООП это это просто сахар.


Самое смешное, что на некотором уровне общьности — да.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[17]: Динамическая типизация
От: FR  
Дата: 28.08.06 17:36
Оценка:
Здравствуйте, VladD2, Вы писали:

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


FR>>Опять забываешь про замыкания.


VD>По большому счету они эмулируются классами и методами. Так в общем-то в C# и сделано.


А класссы тоже легко эмулируются через замыкания. В Clisp'е в общем так и сделано
Re[18]: Динамическая типизация
От: IT Россия linq2db.com
Дата: 28.08.06 18:03
Оценка:
Здравствуйте, FR, Вы писали:

FR>Совершенно согласен, я вот тоже смотрел дизассемлером как классы реализуются в C++, результирующий год не использует ничего из того, чего нельзя сделать в процедурном стиле, так что весь ООП это это просто сахар.


Верно. Я всегда говорил, что ООП — это просто набор удобных паттернов.
Если нам не помогут, то мы тоже никого не пощадим.
Re[19]: Динамическая типизация
От: Cyberax Марс  
Дата: 28.08.06 18:29
Оценка: :))
IT wrote:
> FR>Совершенно согласен, я вот тоже смотрел дизассемлером как классы
> реализуются в C++, результирующий год не использует ничего из того, чего
> нельзя сделать в процедурном стиле, так что весь ООП это это просто сахар.
> Верно. Я всегда говорил, что ООП — это просто набор удобных паттернов.
Осторожно! В этой ветке Gaprton и VladD2, которые оба несогласны с таким
мнением.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[20]: Динамическая типизация
От: IT Россия linq2db.com
Дата: 28.08.06 18:58
Оценка: +1 :))) :))
Здравствуйте, Cyberax, Вы писали:

>> Верно. Я всегда говорил, что ООП — это просто набор удобных паттернов.

C>Осторожно! В этой ветке Gaprton и VladD2, которые оба несогласны с таким мнением.

Если отвечать на твоё замечание в стиле Влада, то получается, что его несогласие не может повлиять на то, что ООП — это просто набор удобных паттернов
Если нам не помогут, то мы тоже никого не пощадим.
Re[15]: Динамическая типизация
От: Mikl Kurkov Россия  
Дата: 28.08.06 19:29
Оценка: +1
Здравствуйте, IT, Вы писали:

IT>...

IT>Анонимные методы тоже не более чем синтаксических сахар, т.е. следуя логике лямбда — это синтаксических сахар даже не по отношению к анонимным методам, а вообще ещё к C# 1.0. Т.е. опять же просто более удобная запись, на самом деле ничего военного.

Ну вот она основная разница между функциональными языками и не. В функциональном лямбда это самая низкоуровненвая конструкция. И с помощью сахара и комбинаторов эти лямбды стараются запрятать подальше. Но в результате все в эту одну большую лямбду и разворачивается. А в нефункциональных языках лямбда — это сахар.

--
Mikl
Re[18]: Динамическая типизация
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.08.06 19:31
Оценка:
Здравствуйте, FR, Вы писали:

FR>А класссы тоже легко эмулируются через замыкания. В Clisp'е в общем так и сделано


Оно и логично.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: Динамическая типизация
От: Gaperton http://gaperton.livejournal.com
Дата: 29.08.06 10:47
Оценка:
Здравствуйте, Трурль, Вы писали:

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


G>>
G>>funct( X, Y, Container ) -> 
G>>   Z = X + Y,
G>>   map( fun( X ) -> X + Z end, Container ).
G>>


G>>Код понятен? Просьба записать то же самое через локальные функции — на поверку.


Т>
Т>function funct( X, Y:integer; Container:TContainer) :TContainer;
Т>  var Z:integer;
Т>  function local(X:integer):integer;
Т>  begin
Т>    local:= X + Z
Т>  end;
Т>begin
Т>  Z := X + Y;
Т>  funct:= map(local, Container)
Т>end
Т>


Хм. Не защитываем. А вернуть такую "лямбду" в качестве результата функции у тебя тоже получится (опускаем вызов map)?

http://rsdn.ru/Forum/Message.aspx?mid=2080690&amp;only=1
Автор: FR
Дата: 28.08.06
Re[12]: Динамическая типизация
От: Трурль  
Дата: 29.08.06 13:30
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Хм. Не защитываем. А вернуть такую "лямбду" в качестве результата функции у тебя тоже получится (опускаем вызов map)?

А про вернуть ничего не было.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.