Используя Sicstus и учитывая список
[b > f, f > c, c > b, g > h, g > g, d, b, f > k, k > f, f > c]
Я хочу преобразовать его в:
graph([b,c,d,f,g,h,k],[e(b,f),e(c,b),e(f,c),e(f,k),e(g,g),e(g,h),e(k,f)])
Моя цель - преобразовать первый список в два отдельных списка только однимпройти через первый и использование двух аккумуляторов.
hf_to_graph_term([H|T], AccN, Nodes, AccE, Edges):-
H = A>B,!,
merge([H],AccE,NewAccE),
hf_to_graph_term(T,AccN,Nodes,NewAccE,Edges).
Однако я получаю сообщение об ошибке:
! Syntax error
! operator expected after expression
! in line 290
! hf_to_graph_term ( [ H | T ] , AccN , Nodes , AccE , Edges ) :- H = A
! <<here>>
! > B , ! ,
Это потому, что >
зарезервирован как оператор сравнения.
Какие изменения я должен внести в мой код?