たとえば、2つのアトムを比較してどちらが優れているかを確認するルールを作成しようとしています(memory_with_gb_2はmemory_with_gb_1よりも優れています)。SWI-prologで書いて試したことは次のとおりです。
better_attribute3_in(Attribute3_in,Attribute3):-
atom_codes(Attribute3,List_Attribute3),
startsWith(List_Attribute3,Attribute3_Start,Rest_Attribute3_List),
atom_to_term(Rest_Attribute3_List,Attribute3_Number,_),
number(Attribute3_Number),
atom_codes(Attribute3_in,List_Attribute3_in),
startsWith(List_Attribute3_in,Attribute3_in_Start,Rest_Attribute3_in_List),
atom_to_term(Rest_Attribute3_in_List,Attribute3_in_Number,_),
number(Attribute3_in_Number),
Attribute3_in_Number>=Attribute3.
これは SWI-Prolog では完全に機能していますが、SICStus Prolog で試してみるとうまくいかないようです。SICStus で上位コードを実装する方法はありますか。