数据库部分Turbo Prolog中不同类型的列表

时间:2015-02-18 16:07:40

标签: syntax prolog

Turbo Prolog并不像看起来那么容易。有另一个问题。使用Turbo Prolog 2.0。

我有两个部分域和数据库:

domains

    tablet_name = symbol

database

    additional(tablet_name, [])

如何告诉prolog知道,而不是[]将是一个不同类型的列表,如integer, integer, symbol, integer,symbol, symbol and so on

如果它只是整数,那就很容易,就像additional(tablet_name, integer*)一样。但实际上,我需要保留一份不同数据量的列表。

结果应该是:additional('Acer 525', [23, yes]), additional('Acer 525', [23])

1 个答案:

答案 0 :(得分:2)

抱歉,我没有提供Turbo Prolog。但是从this specification page开始,Visual Prolog似乎可以用类似Prolog的语法声明复合域。所以,试试

domains
   ...
   tablet_attr = size(integer,integer) ; weight(integer) ; ...
   tablet_attrs = [tablet_attr*]