1

私は 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より大きい数値のようなことをしたいと思います。この問題にどのようにアプローチするかについてのアイデアはありますか?

4

1 に答える 1