Pull to refresh
  • by relevance
  • by date
  • by rating

Немного о Prolog'е

Prolog *
Язык пролог незаслуженно обладает довольно узкой известностью, между тем это довольно интересный язык, который несомненно стоит того, чтоб познакомиться с ним.

Если честно, мне лень описывать синтаксис и особенности пролога, кому интересно, без труда найдут достаточное количество материала в интернете, благо язык довольно академичный. Скажу лишь, чем меня он заинтересовал. Дело в том, что пролог, по сути единственный язык, предлагающий качественно другой подход к программированию, чем хорошо известные императивный, ООП (который, по сути, тоже императивный, но нацелен на структурирование и модульность), функциональный. Можно назвать этот подход декларативно-логическим.
Не претендуя на точность терминологии, этот подход можно определить как такой, при котором программа представляет собой описанние теми или иными конструкциями языка программирования самого условия задачи. Роль ЯП при этом понять это описание, и сделать из него некоторый вывод, который окажется ни чем иным как правильным решением задачи.
Проиллюстрируем, что под этим подразумевается. Возьмем следующую задачу.

Читать дальше →
Total votes 90: ↑81 and ↓9 +72
Views 27K
Comments 119

Prolog, введение

Prolog *
Довольно оживленное обсуждение предыдущей стати (http://habrahabr.ru/blogs/programming/47416/) показало, что тема пролога оказалась интересна сообществу.
Чтобы заинтересовать еще более читателя и вместе с тем облегчить ему начало работы с этим языком, я решил написать немного начальных данных о прологе.

Кратко основные особенности.
Читать дальше →
Total votes 78: ↑64 and ↓14 +50
Views 94K
Comments 41

SpaceChem и другие инженерные игры от Zachtronics Industries

Lumber room
Хочу рассказать о пяти indie-играх жанра Logic/Puzzle от одного разработчика. Данные игры примечательны тем, что не только заставляют думать, но также имеют довольно-таки необычный геймплей и инженерную составляющую. Две из них имеют химическую подоплеку, две — электротехническую, и одна — паровую. Больше всего меня зацепила SpaceChem, и изначально я хотел рассказать только о ней. Но природная любознательность вывела на сайт разработчика, и как оказалось, у Zachtronics Industries все игры такие.
Читать дальше →
Total votes 5: ↑3 and ↓2 +1
Views 2.6K
Comments 1

Кто разводит рыбок? Или решение загадки Эйнштейна регулярным языком

Abnormal programming *
Многие сталкивались с головоломкой про пять разноцветных домов, в каждом из которых живет человек со своими любимыми животным, напитком и сигаретами. Эта загадка приписывается Эйнштейну, хотя прямых подтверждений этому нет. Полный текст этой головоломки есть на википедии.



Ее можно решить на бумаге или в уме, последовательно исключая неподходящие варианты. Однако, ее также можно решить более технично. Один из способов — написать программку на прологе. Но здесь я хочу ее решить используя более простые механизмы — регулярные выражения. А именно, перевести условия загадки на язык регекспов и свести задачу к поиску подходящей строки во всем допустимом наборе строк. Кстати, этот набор строк показан на рисунке.

Интересно? Прошу под кат.
Total votes 121: ↑117 and ↓4 +113
Views 32K
Comments 43

Задача Эйнштейна на Mercury

Prolog *
Продолжаем неделю задачи Эйнштейна на Хабре. В дополнение к трём представленным решениям
  1. Регулярным языком
  2. Хаскеллем
  3. Прологом

позвольте представить еще одно на Mercury.

Напомним Википедию:

Mercury — язык функционально-логического программирования со строгой типизацией…
Читать дальше →
Total votes 31: ↑22 and ↓9 +13
Views 2.6K
Comments 20

TX16Wx — В поисках идеального сэмплера

Sound
Как и многие электронные музыканты я начинал с трекеров и испытываю весьма нежные чувства к работе с сэмплами. Долгое время я пытался найти Идеальный Сэмплер, аппаратный или программный. но каждый раз попадалось что-то не совсем то. Требования к Идеальному Сэмплеру выдвигались следующие: возможность автоматизации или модуляции точки старта и длины лупа, удобная загрузка сэмплов, возможность переключения “на ходу” сэмплов, лежащих в одной директории. Хочу поделиться своими наблюдениями и соображениями, а также небольшим обзором программного сэмплера TX16Wx.



Читать дальше →
Total votes 11: ↑9 and ↓2 +7
Views 21K
Comments 15

No Bugs, No Flaws или о надежности систем как таковых

Information Security *IT systems testing *Programming *System Analysis and Design *Debugging *
Сегодня просматривая публикацию Егора Бугаенко When Do You Stop Testing!, с удивлением обнаружил, что немногие понимают и задумываются о том, что проблема тестирования и утверждения того, что система не имеет недостатков принципиально не решаема. Это кстати еще актуально и в связи с внедрением электронных выборов, и требованиями со стороны официальных лиц и журналистов доказательств отсутствия дыр в системе безопасности. Например у нас (Эстония) эта дискуссия идет полным ходом, и политики хотят получить стопроцентные доказательства надежности системы электронных выборов. Публичные политики, как правило незнакомы с логикой в её формальном виде. А Юм и Поппер, в лучшем случае, напоминают о каких то скучных философских семинарах, о которых лучше забыть. Но когда я слышу о том, что тестер или сеньор начинает вполне серьезно доказывать, что код протестирован и ошибок нет совсем, мое лицо приобретает это выражение:

image
Читать дальше →
Total votes 6: ↑4 and ↓2 +2
Views 2.9K
Comments 15

Создание когнитивных связей у игроков

Game development *
Sandbox
image

Вступление


Статья повествует о создании когнитивных связей в головах игроков логической игры
«Maze Lord». Или как перевели её различные сайты — Повелитель Подземелий. Это пошаговая логическая игра с элементами менеджмента ресурсов в roguelike сеттинге.
Читать дальше →
Total votes 28: ↑27 and ↓1 +26
Views 9.2K
Comments 18

Videogame monsters: how to sow fear

Game development *Games and game consoles
Tutorial

In video games, enemies are one of the key figures, without which a game might lose its meaning, and when it’s not only enemies, but terrifying monsters, they often create the chilling atmosphere intended by the developers. It’s impossible to imagine Silent Hill without the Pyramid Head, or Outlast without Chris Walker, and so on, you get the idea. Monsters are a cumulative image of a video game enemy, and it’s not necessarily an ugly demon or a giant spider: even an angry neighbor, like in Hello Neighbor, is a monster despite his human appearance.

This is where the reader probably asks:


what’s the point of this article?
Read more →
Total votes 12: ↑12 and ↓0 +12
Views 2.5K
Comments 0