Получить операнды оператора
У меня есть список:
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) правда.
Другими словами, да, =
объявляется как оператор, но также является атомом, поэтому может быть именем термина.