Как работает объявление переменных в прологе swi?

#variables #prolog #swi-prolog

Вопрос:

Извините за неудобства, я все еще новичок в синтаксисе Prolog, я просто спрашиваю, как можно объявить/создать экземпляр и манипулировать переменной X (если возможно) и иметь возможность записывать/распечатывать ее аналогично другим языкам. Например:

 int x = 5; print(x);  

или даже поменять местами переменные

 int x = 5, y = 10, z; z = y; x = z; y = x;  

Возможно ли реализовать их в прологе? Если да, то как? Если нет, то почему?

Ответ №1:

Вы не первый человек, который задает именно этот вопрос. Даже поиск в Stackoverflow был бы проще. К настоящему времени я подозреваю, что профессор CompSci просто троллит своих студентов этим вопросом.

Ваш пример выглядит как C или C-подобный язык. Другие очень популярные языки не требуют объявлений, например Python. Объявление переменных является артефактом ранних скомпилированных языков. Это очень широкая тема, которая относится к лекции университетского уровня по разработке компиляторов, разработке языков программирования и так далее.

Вы «меняете переменные местами», когда ваши переменные являются дескрипторами регистров в процессоре или ячейках памяти. Пролог находится на совершенно другом уровне, до такой степени, что мне хочется сказать «снять вопрос», несмотря на то, что я не слишком мудр.

Итак, давайте начнем снова: чего вы пытаетесь достичь, меняя переменные местами?

Если вы хотите напечатать 5, напишите:

 ?- X = 5. X = 5.  

или, может быть,:

 ?- write(5). 5 true.  

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

Комментарии:

1. @LucasMaine Это не имеет никакого отношения к интеллекту. Речь идет об информации. Вам не хватает информации, поэтому я даю вам очевидный совет: «получите больше информации». Вы можете спрашивать все, что хотите, но это касается незнакомцев в Интернете: иногда они бывают полезны, но обычно они просто незнакомцы в Интернете. Итак, начните с чтения самостоятельно, это намного проще.