Получить операнды оператора

У меня есть список:

List = [a=3, b=2, c=0].

Например, первый элемент a=3Как я могу получить значение слева = a, Справа = 3, Левая сторона - это атом, а правая - это число.

1 ответ

Решение

Используйте унификацию:

? - Список = [a=3, b=2, c=0], член (слева = справа, список).
Список = [a=3, b=2, c=0],
Слева = а,
Справа = 3;
Список = [a=3, b=2, c=0],
Слева = б,
Справа = 2;
Список = [a=3, b=2, c=0],
Слева = с,
Право = 0.

Здесь что-то вроде a=3 на самом деле термин с функтором = и арити 2 с первым аргументом a и второй аргумент 3, Если вы когда-нибудь окажетесь в ситуации, когда вы не уверены, как именно Пролог интерпретирует то, что вы написали, вы можете попробовать write_canonical/1:

? - запись_каноническая (а =3).
=(А,3)
правда.

Другими словами, да, = объявляется как оператор, но также является атомом, поэтому может быть именем термина.

Другие вопросы по тегам