|
|
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
Диез, Там частный случай List'а решен, и то в каком-то странном виде. А что делать с Map'ами и т.д.? Тогда уж 1С почитайте, регистры сведений, накоплений и вообще документы... Но им обоим до уровня декларативности хотя бы SQL как до луны пешком... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 15:34:15 |
|
||
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
Nitro_JunkieДиез, Там частный случай List'а решен, и то в каком-то странном виде. А что делать с Map'ами и т.д.? Не понял вопроса.. Map (в .NET - Dictionary) - тоже некоторая коллекция, почему бы с ней не работать через Linq? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 16:52:33 |
|
||
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
Диез, Долго объяснять, но прямого маппинга на SQL не будет. То есть не пробовал, но запросы явно как в Hibernate'е много по чуть-чуть, борьба за скорость превысит пользу от использования (если конечно не очень простые приложения). ЗЫ. Посмотрел описание с примерами, там вся технология - "синтаксический" сахар + ORM... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 17:20:06 |
|
||
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
Nitro_JunkieДиез, Долго объяснять, но прямого маппинга на SQL не будет. То есть не пробовал, но запросы явно как в Hibernate'е много по чуть-чуть, борьба за скорость превысит пользу от использования (если конечно не очень простые приложения). ЗЫ. Посмотрел описание с примерами, там вся технология - "синтаксический" сахар + ORM... Вы, наверное, путаете LinqToObjects и LinqToSQL. У них синтаксис одинаковый, но внутри принципиально разные технологии. LinqToSQL - генерация SQL-запросов из кода C#/VB.NET с помощью AST-преобразований. Удобно иногда, но по сути тот же ОРМ, как вы и заметили. LinqToObjects - операции с произвольными коллекциями не через итерации, а с помощью декларативных запросов: Код: plaintext 1. 2. 3. Компилятор превращает запрос вот в это: Код: plaintext 1. где Where и OrderBy - обычные библиотечные функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 19:07:23 |
|
||
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
Я вобщем не куда и не уходил. Просто смысла в обсуждении функциональности sql-а, особенно таком, не вижу. Ggg_old Лично мне все-таки не очень понятно, как из таких строительных кирпичиков как: лямбда функции, замыкание, рекурсия можно писать ПО "завтрашнего дня". Ну лямбды и компания скорее соотвествуют if-аим, прцедурам, объектам. Великой абстракции они не несут. Что интересного можно построить? Я уже говорил об алгебре которая позволяет решать задачки. Лямбда-исчисление это алгебра позволяющая решать программы. Преобразовывать не текст программы, как делает сишный макропроцессор, а сам алгоритм. Пока я вижу, что декларативности, как это есть в SQL этот подход не несет. Моя чуйка подсказывает, что большое будущее все-таки за декларативным подходом и ФП скорее занимает промежуточное положение между императивным подходом и декларативным. Очень бы хотелось увидеть что-то вроде книги GoF но для ФП. А какая декларативность есть в SQL? В прошлый раз я спрашивал, что именно ты хочешь обобщить и абстрагировать с помощью ФП? Попробуй ответить на эти вопросы, и будет виден путь куда говорить дальше. Заметь в прошлом посте я пытался показать почему декларативность SQL такая. Попробуй применить такую логику. Вобще в твоих вопросах не видно откуда? и куда? Есть только большие транспоранты ФП, Декларативность. Без контекста они сильно лучше Коммунизма-Капитализма. Пока в нете есть хорошая статья в последнем номере журнала fprog.ru, с первого раза не понял многого, буду перечитывать еще. Статья скорее большая и обзорная. Там вобщем-то нет ответов на твои вопросы (насколько я их понимаю). Я ее подкинул что-бы не зацикливался на лямбдах и рекурсии. GOF это все же про "ООП головного мозга" и как с этим жить. Но это лично мое мнение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2010, 21:28:16 |
|
||
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
Диез, Хм... Забавно, хотя и все равно не совсем понятно для чего использовать, все-таки .Net не постоянно хранимая, поэтому в коллекциях обычно лежат временные данные из БД, и отбор по ним изначально должен делаться в БД (иначе тормозить будет)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2010, 10:26:28 |
|
||
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
Кстати насчет хибернейта-если бы копнули чуть глубже, то можно было бы найти возможность избежать кучи мелких запросов. Можно выбрать или ленивую загрузку, или наоборот все в один вопрос запихнуть с помощью настроек фетчинга. Мы сейчас прикрутили NHibernateLambda (или как-то так), так что сейчас наши запросы все типизированы и в случае изменения названия полей в классах ничего не полетит. Эдакий типизированный аналог SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2010, 11:13:36 |
|
||
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
Известный тезис, что торжество императивных языков вызвано было последовательными архитектурами. Но послед. арх-ры нормально уходят в прошлое. А вот разностная машина Чарльза Бэббиджа имела в общем параллельную архитектуру (по историч. сведениям). Метод конечных разностей просто распараллеливается. Причем если работу машины представить программно, то это программа стиля ФП: вычисление значения функции по другому значению этой же функции и пр. То есть, когда придет пора всё распараллеливать, то императивные языки, да с наворотами ООП, будут выглядеть несимпатично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2010, 17:43:31 |
|
||
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
Думаю, что переход к труЪ-функциональным языкам в mainstream будет очень тяжёлым. Для меня, как для "махрового" практика много неясностей в плане практического применения ФП. Здесь всё и IO* и Network* и прочие system*, RDBMS* -"головняки" без которых ФП-платформа будет "сферическим конём" или "вещью в себе". Много также вопросов чисто технологических. Как то-да сё да пятое десятое? Как дебажить, как трассировать, как ловить эксцепшены и сопрягаться с kernel. Хотя, этот тяжёлый переход будет постепенно облегчён. Возможно, в ближайшем будущем впихнут во все языки работу с closures, со списками и скажут-де "нахера вам этот Лисп и Хаскель?" возьмите наш X-ТруЪ-Чудо-lang и будет вам синтетическое щастье! Аллилуйя братия!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2010, 21:27:25 |
|
||
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
mayton Хотя, этот тяжёлый переход будет постепенно облегчён. Возможно, в ближайшем будущем впихнут во все языки работу с closures, со списками и скажут-де "нахера вам этот Лисп и Хаскель?" возьмите наш X-ТруЪ-Чудо-lang и будет вам синтетическое щастье! Аллилуйя братия!! А что, разьве это не так с C#? Тенденция вполне очевидна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2010, 07:57:40 |
|
||
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
В контексте поста mayton, не совсем понимаю, если исключить декларативность (которой де-факто в текущих "функциональных" языках нету) как это предполагают многие участники треда, что такого волшебного в функциональном программировании что существенно облегчает работу? Да нету этого дебилизма с привязкой метода ровно одному объекту, но без множественной диспетчеризацией и с нарушением модульности жить можно... А какая практическая польза от лямбда-исчисления (каррирования в частности) для меня загадка.... Точнее передачу\возврат функций и так можно решать передачей адресов функций как в C или в виде скажем анонимных классов, которые для восприятия даже проще... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2010, 10:20:33 |
|
||
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
Nitro_Junkie декларативность (которой де-факто в текущих "функциональных" языках нету) как это предполагают многие участники ... А какая практическая польза от лямбда-исчисления (каррирования в частности) для меня загадка.... Практическая польза такая же как и от машины Тьюринга. Это очень эффектная остроумная вычислительная модель, при теоретической пользе которой создаются ФЯ. Декларативность в какой-то степени в каких-то местах присутствует во всех языках, как и функциональность. Наверно все же ИП+ООП, ФП, ЛП - это вопрос стиля, и в любом из стилей можно программировать на любом универс. языке. (Как стиль музыкального исполнениния - например, все можно сыграть как джаз, стиль единоборств, стиль поведения, ...). И необходимость программирования в каком-то стиле на языке другого стиля вызывается конечно задачами (а не намерением поизвращаться). P.S. Ответить - это сформулирвать что-то и для самого себя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2010, 10:53:12 |
|
||
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
Пилотажный, Так в чем эта польза отражена в ФЯ? То есть получается что все существующие языки (за исключением SQL :) ) отличаются друг от друга "синтаксическим" сахаром. И борьба идет только за то кто меньше букв напишет, и у кого красивее код будет смотреться. Такое развлечение для эстетов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2010, 11:09:28 |
|
||
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
Nitro_Junkie То есть получается что все существующие языки (за исключением SQL :) ) отличаются друг от друга "синтаксическим" сахаром. И борьба идет только за то кто меньше букв напишет, и у кого красивее код будет смотреться. Такое развлечение для эстетов? Меньше букв - меньше возможностей написать не ту букву и больше свободного времени для других задач ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2010, 11:14:08 |
|
||
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
Nitro_JunkieПилотажный, Так в чем эта польза отражена в ФЯ? То есть получается что все существующие языки (за исключением SQL :) ) отличаются друг от друга "синтаксическим" сахаром. И борьба идет только за то кто меньше букв напишет, и у кого красивее код будет смотреться. Такое развлечение для эстетов? Хм. Интерпретируются, транслируются, ... иначе. Компьютер иначе работает. Разный синтаксический сахар имеет разную цену. :) "Как корабль назовешь - так он и поплывет". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2010, 11:18:52 |
|
||
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan) Меньше букв - меньше возможностей написать не ту букву и больше свободного времени для других задач Мммм, в данной формулировке позволю себе не согласиться. Меньше лексем-возможно. Но никак не меньше букв ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2010, 11:18:59 |
|
||
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Nitro_Junkie То есть получается что все существующие языки (за исключением SQL :) ) отличаются друг от друга "синтаксическим" сахаром. И борьба идет только за то кто меньше букв напишет, и у кого красивее код будет смотреться. Такое развлечение для эстетов? Меньше букв - меньше возможностей написать не ту букву и больше свободного времени для других задач +1 Добавлю от себя: меньше возможности выстрелить себе в ногу :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2010, 11:40:17 |
|
||
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
zloy denGluk (Kazan) Меньше букв - меньше возможностей написать не ту букву и больше свободного времени для других задач Мммм, в данной формулировке позволю себе не согласиться. Меньше лексем-возможно. Но никак не меньше букв вырываешь из контекста было сказано: автор И борьба идет только за то кто меньше букв напишет, и у кого красивее код будет смотреться Соответственно и ответ был на тему, что меньше и красивее (пусть даже и букв) это вполне себе весомые экономические плюсы. С чем кстати можно и поспорить. Меньше букв (или пусть даже лексем) не значит понятнее (вспоминаем J, взрагиваем), но ... мы с коллегой сложность языков ведь объемом их грамматик меряем ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2010, 11:42:35 |
|
||
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
Ладно, меньше и красивее меня вполне устраивает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2010, 11:44:17 |
|
||
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
zloy denЛадно, меньше и красивее меня вполне устраивает Только вот все дело в том, что красота штука субъективная Некоторым красивым кажется J, а некоторым построение "частично рекурсивных функций" на конечных множествах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2010, 11:56:54 |
|
||
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
Пилотажный, Но все равно синтаксический сахар... Сколько не спорить, у кого коврики в машине красивше, при расстоянии больше 200 км все равно лучше лететь на самолете :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2010, 12:07:06 |
|
||
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
Nitro_JunkieТо есть получается что все существующие языки (за исключением SQL :) ) отличаются друг от друга "синтаксическим" сахаром. И борьба идет только за то кто меньше букв напишет, и у кого красивее код будет смотреться. Такое развлечение для эстетов? 100%. Причём самые злостные эстеты - это Паскалисты. Сам видел исходнички, где begin-end пишут с большой буквы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2010, 12:21:38 |
|
||
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
Nitro_JunkieПилотажный, Но все равно синтаксический сахар... Сколько не спорить, у кого коврики в машине красивше, при расстоянии больше 200 км все равно лучше лететь на самолете :) Ну, раз пошли такие сравнения... коврики.. Если "сахар" - это климат/круиз-контроль, GPS и прочая и прочая, то можно и на машине :) Может будет не так быстро, но дешевле и даже комфортнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2010, 12:24:13 |
|
||
|
Функциональное программирование
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Меньше букв - меньше возможностей написать не ту букву и больше свободного времени для других задач Я-бы сказал - всё идёт от "лени" разработчика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2010, 12:25:49 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=36443741&tid=1343707]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
216ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 542ms |

| 0 / 0 |
