私は Prolog 算術演算を使用しており、plus(num(1),num(2))
単純に のような抽象的な構文ツリーを生成するプログラムを持っています1+2
。これは、DCG を使用して行われます。この例plus(num(1),num(2))
では、プレフィックス リストの表現と同じ[+,1,2]
です。
num(x)
私の問題は、3 より大きい値のみを許可したいということです。たとえば、num(4)
は許可されていますが、 は許可されていませんnum(1)
。
私はこれをやっています:
num(num(4)) --> [4].
num(num(5)) --> [5].
num(num(6)) --> [6].
num(num(7)) --> [7].
num(num(x)) --> [x].
などですが、3より大きい数値のようなことをしたいと思います。この問題にどのようにアプローチするかについてのアイデアはありますか?