Пролог петли и условные операторы? - PullRequest
1 голос
/ 19 октября 2010

Есть ли в Прологе что-то, что работает как цикл for и если тогда условие?

Ответы [ 2 ]

9 голосов
/ 19 октября 2010

если / то / еще можно получить с помощью (->) / 2 и (;) / 2:

(    If ->
     Then
;    Else
)

Иногда это полезно. Хотя в общем случае (когда условие содержит переменные), оно сделает ваши программы нездоровыми и неполными. Всякий раз, когда возможно описать условия сопоставления с образцом, следует использовать сопоставление с образцом. Тогда вы сможете не только проверять, но и генерировать решения.

5 голосов
/ 19 октября 2010

Если вы ищете такие утверждения, то вы не думаете в Прологе:)

Шучу, кстати, нет простого перевода или для и если / еще, но вы можете подуматьо том, как они должны быть в прологе:

  • и if / else утверждение можно получить, просто имея два правила, которые соответствуют различным условиям
  • a цикл for может быть выполнен с двумя рекурсивными правилами, одно из которых является базовым, и он не зависит от себя, чтобы хранить его, в то время как другой делает то, что вы собираетесь делать внутри цикла, и следует самому себе.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...