У меня есть список:Получить оператор операнды
List = [a=3, b=2, c=0].
Например, первый элемент a=3
, как я могу получить значение Left = a
, Right = 3
. Левая сторона - это атом, а правая сторона - номер.
У меня есть список:Получить оператор операнды
List = [a=3, b=2, c=0].
Например, первый элемент a=3
, как я могу получить значение Left = a
, Right = 3
. Левая сторона - это атом, а правая сторона - номер.
Использование объединения:
?- List = [a=3, b=2, c=0], member(Left=Right, List). List = [a=3, b=2, c=0], Left = a, Right = 3 ; List = [a=3, b=2, c=0], Left = b, Right = 2 ; List = [a=3, b=2, c=0], Left = c, Right = 0.
Здесь что-то вроде a=3
фактически термин с функтор=
и арностью 2, с первым аргументом a
и второй аргумент 3
. Если вы когда-нибудь попасть в ситуацию, когда вы не уверены, как именно Prolog интерпретирует то, что вы написали, вы можете попробовать write_canonical/1
:
?- write_canonical(a=3). =(a,3) true.
Другими словами, да, =
объявлен как оператор, но это также атома, так что это может быть название термина.
спасибо! :) –
Надеюсь, вам понравится '.' в конце ответов так же, как и я. – false