Конечно, это способ избавится от обработки данных циклами.
вот пример
SELECT bid_date,
MAX(bid_amount)
OVER (ORDER BY bid_date
ROWS BETWEEN UNBOUNDED PRECEDING
AND CURRENT_ROW) AS high_bid_amount FROM Auction_Log;
Спасибо, может немного и наивно получилось, но выразить декларативно сортировку слиянием, у меня выходит без обращений к первоисточнику, а вот представить себе алгоритм (Фон-Неймана)[http://www.sql.ru/forum/719824/sortirovka-sliyaniem] в алгоритмическом виде — совсем не просто.
Есть принцип сортировки, а он алгоритмический или декларативный, вот это меня интересует, как мы представляем себе вычисления?
Как вы формулируете решения, удобно ли задумываясь о последовательности действий?
Совсем недавно в MSSQL добавляли функции ранжирования, а вот в новых стандартах уже и оконные функции — было что-то не удобно, можно это учесть и доработать…
Да, так и есть, Erlang синтаксически близок с Прологом. Но в нем реализована парадигма функционального программирования. Унификация Пролога более широкое понятие чем pattern matching, также в Пролог встроен поиск с возвратом и управление им.
Вот тут lpn.swi-prolog.org/lpnpage.php?pageid=online хорошее руководство с живыми примерами.
По моему, это язык, но не императивный, это не команды или инструкции,
это описание задачи, которую нужно решать, отсюда и производительность может хромать, посмотрите как пример с Го летает
Спасибо, такой вариант уже опробовали,
Не проходит тест далее:
1708 / 1808 test cases passed.
Status: Time Limit Exceeded
Submitted: 0 minutes ago
Last executed input:
«abbabaaabbabbaababbabbbbbabbbabbbabaaaaababababbbabababaabbababaabbbbbbaaaabababbbaabbbbaabbbbababababbaabbaababaabbbababababbbbaaabbbbbabaaaabbababbbbaababaabbababbbbbababbbabaaaaaaaabbbbbaabaaababaaaabb»
"**aa*****ba*a*bb**aa*ab****a*aaaaaa***a*aaaa**bbabb*b*b**aaaaaaaaa*a********ba*bbb***a*ba*bb*bb**a*b*bb"
Пока не могу утверждать что все получилось,
к этой задаче 1800 тестов на сайте, откуда она взята.
Думаю написать продолжение, реализовать тоже на питоне, подставить решение и увидеть оставшиеся тесты, а потом уже подставить их в реализацию на Прологе, но это тема для новой войны статьи...
Почему заниматься программированием интересно? Какими радостями вознаграждаются те, кто им занимается? Во-первых, это просто радость, получаемая при создании чего-либо своими руками. Как ребенок радуется, делая куличики из песка, так и взрослый получает удовольствие, создавая какие-либо вещи, особенно если сам их и придумал. Я думаю, что этот восторг — отражение восторга Господа, творящего мир, восторга, проявляющегося в индивидуальности и новизне каждого листочка и каждой снежинки.
это пример про занимательность решения задач, про удобство программирования на пролог, далее выбираем следующую задачу из leetcode.com и быстро решаем ))
Тут речь не про порядок, а коммутативность операции И.
Ответить могу цитатой из известной книги Братко И.:
Но, к сожалению,
декларативный подход не всегда позволяет решить все задачи. По мере дальнейшего
изучения материала этой книги станет очевидно, что процедурные аспекты не могут
полностью игнорироваться программистом по практическим причинам, связанным с
обеспечением вычислительной эффективности, особенно при разработке больших
программ. Тем не менее необходимо стимулировать декларативный стиль мышления
при разработке программ Prolog и игнорировать процедурные аспекты до такой степени,
которая является допустимой с точки зрения практических ограничений.
вот пример
SELECT bid_date,
MAX(bid_amount)
OVER (ORDER BY bid_date
ROWS BETWEEN UNBOUNDED PRECEDING
AND CURRENT_ROW) AS high_bid_amount FROM Auction_Log;
Спасибо, может немного и наивно получилось, но выразить декларативно сортировку слиянием, у меня выходит без обращений к первоисточнику, а вот представить себе алгоритм (Фон-Неймана)[http://www.sql.ru/forum/719824/sortirovka-sliyaniem] в алгоритмическом виде — совсем не просто.
Есть принцип сортировки, а он алгоритмический или декларативный, вот это меня интересует, как мы представляем себе вычисления?
Как вы формулируете решения, удобно ли задумываясь о последовательности действий?
Я о том, (что)[https://www.red-gate.com/simple-talk/sql/t-sql-programming/window-functions-in-sql/] "Windowing functions were added to the ANSI/ISO Standard SQL:2003 and then extended in ANSI/ISO Standard SQL:2008", а происходит это уже при наличии процедурных решений… Удобство использования расширяют
Вот тут lpn.swi-prolog.org/lpnpage.php?pageid=online хорошее руководство с живыми примерами.
О спасибо, я о том же, не чисто логический, но поняв как он работает, можно использовать во многих областях:
это описание задачи, которую нужно решать, отсюда и производительность может хромать, посмотрите как пример с Го летает
Не проходит тест далее:
1708 / 1808 test cases passed.
Status: Time Limit Exceeded
Submitted: 0 minutes ago
Last executed input:
«abbabaaabbabbaababbabbbbbabbbabbbabaaaaababababbbabababaabbababaabbbbbbaaaabababbbaabbbbaabbbbababababbaabbaababaabbbababababbbbaaabbbbbabaaaabbababbbbaababaabbababbbbbababbbabaaaaaaaabbbbbaabaaababaaaabb»
"**aa*****ba*a*bb**aa*ab****a*aaaaaa***a*aaaa**bbabb*b*b**aaaaaaaaa*a********ba*bbb***a*ba*bb*bb**a*b*bb"
как вывод — Питон неожиданно медленный…
Пока не могу утверждать что все получилось,
к этой задаче 1800 тестов на сайте, откуда она взята.
Думаю написать продолжение, реализовать тоже на питоне, подставить решение и увидеть оставшиеся тесты, а потом уже подставить их в реализацию на Прологе, но это тема для новой
войныстатьи...Отвечу цитатой из книги Ф. Брукса:
Тут речь не про порядок, а коммутативность операции И.
Ответить могу цитатой из известной книги Братко И.: