在prolog中输出格式

时间:2016-01-06 14:37:06

标签: formatting prolog

我在prolog中有一些事实。我想定义一个规则,以一种格式打印所有氨基酸的数据。这里是我有事实的链接和我自己定义的一些规则。但我不能得到格式化工作,我的意思是我不想使用多个write()甚至标签格式我不能工作。这是我的一些逻辑,但它不起作用。我只是想生成一个像格式的报告。以下是我尝试的链接和代码 http://swish.swi-prolog.org/p/aminnoo.pl

>   aminoname(_,H,ShortName),
>     
>     write(H),
>     write(ShortName),nl,    /* write(ShortName),
>    
>     %display [Hydropathy value]
>     %format:aminoclass('Ala','Hydropathy','hydrophobic').
>     aminoclass(ShortName,'Hydropathy',HydropathyValue),
>     write(HydropathyValue),
> 
>     %display [Volume]
>     %format:aminoclass('Ala','Volume','very small').
>     aminoclass(ShortName,'Volume',VolumeValue),
>      write(VolumeValue),
> 
>     %display [chemical value
>     %format:aminoclass('Ala','Chemical','aliphatic').
>     aminoclass(ShortName,'Chemical',ChemicalValue),   write(ChemicalValue),nl,
>     listAminoAcidProperties(T).*/
>     listAminoAcidProperties(T).

我想要这种格式

+-----------------------------------------------------------------+
| name            |    age    |    color      |    something      |
-------------------------------------------------------------------
|  xyz            |     56    |    hgchc      |     var           |
-------------------------------------------------------------------

我正在使用此代码:

format('+~`-t~78|+ ~n', []),
format('|~tTable Title~t~78||~n', []),
format('+~`-t~78|+ ~n', []).

format('| ~s~t~28|| ~s~t~36|| ~s~t~56|| ~s~t~80||~n', 

                            ['Name', 'Age', 'Eye Colour', 'Phone Number']).

但它是如上定义的无效输出

1 个答案:

答案 0 :(得分:2)

format/2是一个谓词,它允许您以与printf C函数类似的方式格式化输出。