Search
Write a publication
Pull to refresh
6
@go-prologread⁠-⁠only

User

Send message
Порезать кубиками, выложить на противень и печь до готовности )))
Спасибо за внимание, про рецепты соглашусь, домохозяйкам они нужны, а шеф-поварам нужны составы блюд и принципы.
Конечно, это способ избавится от обработки данных циклами.
вот пример
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", а происходит это уже при наличии процедурных решений… Удобство использования расширяют

Совсем недавно в MSSQL добавляли функции ранжирования, а вот в новых стандартах уже и оконные функции — было что-то не удобно, можно это учесть и доработать…
Да, так и есть, Erlang синтаксически близок с Прологом. Но в нем реализована парадигма функционального программирования. Унификация Пролога более широкое понятие чем pattern matching, также в Пролог встроен поиск с возвратом и управление им.
Вот тут lpn.swi-prolog.org/lpnpage.php?pageid=online хорошее руководство с живыми примерами.

О спасибо, я о том же, не чисто логический, но поняв как он работает, можно использовать во многих областях:


For now, those interested in Prolog need to find a good book and perform a lot of experiments.
можно поиграть вот тут, в онлайне leetcode.com/problems/wildcard-matching
Согласен — это увлекательно решать трудные задачи ))
Тестировать надо на самом сайте, вот тут leetcode.com/problems/wildcard-matching
По моему, это язык, но не императивный, это не команды или инструкции,
это описание задачи, которую нужно решать, отсюда и производительность может хромать, посмотрите как пример с Го летает
Спасибо, такой вариант уже опробовали,
Не проходит тест далее:
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 и игнорировать процедурные аспекты до такой степени,
которая является допустимой с точки зрения практических ограничений.

Information

Rating
Does not participate
Registered
Activity