これには制限があることは承知していますが、GNU または SWI のいずれかで合理的に機能するように、Prolog コードに条件付きディレクティブを配置する合理的な方法はありますか? sumlist
少なくとも、 SWI やGNUなどの組み込み述語sum_list
のスペルが一致しない最も単純なケースを考えています。または、SWI にはありますassert
が、GNU にはありません。したがって、次のようなものがあればいいでしょう。
:- if($SWI).
SWI version of stuff
:- else.
GNU version of stuff
:- endif.
または単に:
:- if(not_a_builtin(sumlist))
sumlist(L, S) :- sum_list(L, S).
:- endif.
または、そうではありません。条件付きディレクティブは両方の言語に存在しますが、この種のことを行うために必要な条件を提供するまでには至らないようです。手動検索では見つからなかったものを見逃している可能性があります。