<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.visual-prolog.com/index.php?action=history&amp;feed=atom&amp;title=Code_Formatting%EF%BC%88%E4%BB%A3%E7%A0%81%E6%A0%BC%E5%BC%8F%EF%BC%89</id>
	<title>Code Formatting（代码格式） - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.visual-prolog.com/index.php?action=history&amp;feed=atom&amp;title=Code_Formatting%EF%BC%88%E4%BB%A3%E7%A0%81%E6%A0%BC%E5%BC%8F%EF%BC%89"/>
	<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Code_Formatting%EF%BC%88%E4%BB%A3%E7%A0%81%E6%A0%BC%E5%BC%8F%EF%BC%89&amp;action=history"/>
	<updated>2026-05-28T09:51:34Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Code_Formatting%EF%BC%88%E4%BB%A3%E7%A0%81%E6%A0%BC%E5%BC%8F%EF%BC%89&amp;diff=4102&amp;oldid=prev</id>
		<title>Yiding: Created page with &quot;（以下内容，译自:Category:Tutorials中的Code Formatting。更多内容可以参看:Category:Chinese。） &lt;P&gt;本文描述用于Visual Prolog程序的编码标准...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Code_Formatting%EF%BC%88%E4%BB%A3%E7%A0%81%E6%A0%BC%E5%BC%8F%EF%BC%89&amp;diff=4102&amp;oldid=prev"/>
		<updated>2015-06-17T11:47:21Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;（以下内容，译自&lt;a href=&quot;/index.php?title=Category:Tutorials&quot; title=&quot;Category:Tutorials&quot;&gt;Category:Tutorials&lt;/a&gt;中的Code Formatting。更多内容可以参看&lt;a href=&quot;/index.php?title=Category:Chinese&quot; title=&quot;Category:Chinese&quot;&gt;Category:Chinese&lt;/a&gt;。） &amp;lt;P&amp;gt;本文描述用于Visual Prolog程序的编码标准...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;（以下内容，译自[[:Category:Tutorials]]中的Code Formatting。更多内容可以参看[[:Category:Chinese]]。）&lt;br /&gt;
&amp;lt;P&amp;gt;本文描述用于Visual Prolog程序的编码标准，Visual Prolog系统自身也是这样写的。用户文档中的例子也是使用这个标准。因此，PDC也推荐用户使用这个标准。&amp;lt;/P&amp;gt;&lt;br /&gt;
&amp;lt;H2&amp;gt;&amp;lt;SPAN class=mw-headline&amp;gt;关键字&amp;lt;/SPAN&amp;gt;&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;关键字使用小写字母。在文档中关键字用粗体无衬线字体，如Arial。缺省颜色为暗绿色。&amp;lt;/P&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;constants&lt;br /&gt;
domains&lt;br /&gt;
facts&lt;br /&gt;
predicates&lt;br /&gt;
class&lt;br /&gt;
interface&lt;br /&gt;
...&amp;lt;/vip&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H2&amp;gt;&amp;lt;SPAN class=mw-headline&amp;gt;半关键字&amp;lt;/SPAN&amp;gt;&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;Visual Prolog中对各种语法结构使用了许多记号。这些词也都是使用小写（除了用C语言写的C调用中的惯例外）的普通无衬线字体，其颜色根据它们不同的性质分成两种：如果是表示一种选择则用海军蓝色，如果是结构词则使用暗绿色。&amp;lt;/P&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;erroneous&lt;br /&gt;
failure&lt;br /&gt;
procedure&lt;br /&gt;
determ&lt;br /&gt;
nondeterm&lt;br /&gt;
multi&lt;br /&gt;
language&lt;br /&gt;
as&lt;br /&gt;
stdcall&lt;br /&gt;
c&lt;br /&gt;
...&amp;lt;/vip&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;P&amp;gt;下面的例子示出颜色与字体的使用：&amp;lt;/P&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;predicates&lt;br /&gt;
    myPredicate : (string Value) procedure (i) language stdcall as &amp;quot;_myP&amp;quot;&amp;lt;/vip&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H2&amp;gt;&amp;lt;SPAN class=mw-headline&amp;gt;文字&amp;lt;/SPAN&amp;gt;&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;文字的颜色为蓝色。&amp;lt;/P&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;1&lt;br /&gt;
&amp;quot;Hello world!&amp;quot;&amp;lt;/vip&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H2&amp;gt;&amp;lt;SPAN class=mw-headline&amp;gt;标识符&amp;lt;/SPAN&amp;gt;&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;标识符的一般格式可以用下面的EBNF文法描述：&amp;lt;/P&amp;gt;&amp;lt;PRE&amp;gt;&amp;amp;lt;Identifier&amp;amp;gt; = &amp;amp;lt;Prefix&amp;amp;gt; &amp;amp;lt;WordGroups&amp;amp;gt; &amp;amp;lt;Suffix&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;WordGroups&amp;amp;gt; = &amp;amp;lt;WordGroup&amp;amp;gt; { ‘_’ &amp;amp;lt;WordGroup&amp;amp;gt; }*&lt;br /&gt;
&amp;amp;lt;WordGroup&amp;amp;gt; = &amp;amp;lt;Word&amp;amp;gt;+&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;前缀与后缀用于表示标识符的种类，并连同每一类标识符一道处理。除了对那些整个标识符的首字母必须小写的情况而外，单词要大写。&amp;lt;/P&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;变量都以大写字母打头，所有其它的都是小写打头。&amp;lt;/P&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;文档中除了关键字都使用衬线字体，如Times New Roman。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H3&amp;gt;&amp;lt;SPAN class=mw-headline&amp;gt;常量&amp;lt;/SPAN&amp;gt;&amp;lt;/H3&amp;gt;&lt;br /&gt;
常量没有前缀和后缀，由小写字母开头。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;numberOfRows&lt;br /&gt;
pi&lt;br /&gt;
logErrorMsg&amp;lt;/vip&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H3&amp;gt;&amp;lt;SPAN class=mw-headline&amp;gt;变量&amp;lt;/SPAN&amp;gt;&amp;lt;/H3&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;变量没有前缀或后缀。如前述（也是Prolog的要求），变量以大写字母开头，文档中变量用绿色。&amp;lt;/P&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;X&lt;br /&gt;
File&lt;br /&gt;
OutputStream&amp;lt;/vip&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H3&amp;gt;&amp;lt;SPAN class=mw-headline&amp;gt;谓词&amp;lt;/SPAN&amp;gt;&amp;lt;/H3&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;谓词没有前缀。不过，“try”可用来标示谓词是确定的，尤其是用来区分一个谓词的确定版本和与其相应的过程版本。后者会产生异常来代替失败。如：&amp;lt;/P&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;trySetValue : (integer Value) determ (i).&lt;br /&gt;
setValue : (integer Value) procedure (i).&amp;lt;/vip&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;以isXxxx及hasXxxx的形式作为测试谓词是个好方法（当然名称也要对得上号）。&amp;lt;/P&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;谓词没有后缀，除非需要用它来避免混淆，并推荐使用以下的后缀：&amp;lt;/P&amp;gt;&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
  &amp;lt;LI&amp;gt;&amp;lt;B&amp;gt;_fact&amp;lt;/B&amp;gt; nondeterm fact &lt;br /&gt;
  &amp;lt;LI&amp;gt;&amp;lt;B&amp;gt;_nd&amp;lt;/B&amp;gt; nondeterm/multi &lt;br /&gt;
  &amp;lt;LI&amp;gt;&amp;lt;B&amp;gt;_err&amp;lt;/B&amp;gt; erroneous &lt;br /&gt;
  &amp;lt;LI&amp;gt;&amp;lt;B&amp;gt;_fail&amp;lt;/B&amp;gt; failure &lt;br /&gt;
  &amp;lt;LI&amp;gt;&amp;lt;B&amp;gt;_dt&amp;lt;/B&amp;gt; determ &lt;br /&gt;
  &amp;lt;LI&amp;gt;&amp;lt;B&amp;gt;_multi &amp;lt;/B&amp;gt;multi 注意，一般&amp;lt;I&amp;gt;multi&amp;lt;/I&amp;gt; 谓词使用&amp;lt;B&amp;gt;_nd&amp;lt;/B&amp;gt;做后缀，但如果情况需要也可以用&amp;lt;B&amp;gt;_multi&amp;lt;/B&amp;gt; 。&amp;lt;/LI&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;setWindowFont&lt;br /&gt;
member&lt;br /&gt;
member_nd&lt;br /&gt;
ganttBar_fact&amp;lt;/vip&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H3&amp;gt;&amp;lt;SPAN class=mw-headline&amp;gt;域&amp;lt;/SPAN&amp;gt;&amp;lt;/H3&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;域没有前缀。_list用于不具有（事关）域名的表（list）域的后缀，例如，一个数据库的记录是数值表，则记录的域名以数值表为好，就可以用这样的后缀。注意域名以小写字母开头。同样的方法适用于串、整数等域的类似情况。 &amp;lt;/P&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;string&lt;br /&gt;
value&lt;br /&gt;
record&lt;br /&gt;
record_list&amp;lt;/vip&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H3&amp;gt;&amp;lt;SPAN class=mw-headline&amp;gt;类与接口&amp;lt;/SPAN&amp;gt;&amp;lt;/H3&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;类与接口没有前辍。&amp;lt;/P&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;string&lt;br /&gt;
inputFile&lt;br /&gt;
template&lt;br /&gt;
inputStream&amp;lt;/vip&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;P&amp;gt;COM接口传统上是以&amp;quot;I&amp;quot;开头的，这个&amp;quot;I&amp;quot;保留下来了，但要改为小写：&amp;lt;/P&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;iUnknown&lt;br /&gt;
iDispatch&amp;lt;/vip&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H2&amp;gt;&amp;lt;SPAN class=mw-headline&amp;gt;格式&amp;lt;/SPAN&amp;gt;&amp;lt;/H2&amp;gt;&lt;br /&gt;
本节细述程序代码的格式。格式是指断行，缩排，列排（列对齐）等。缩排是指在一行的起始留出若干空格；而列对齐涉及的是非行首构件的排列问题。&lt;br /&gt;
&amp;lt;H3&amp;gt;&amp;lt;SPAN class=mw-headline&amp;gt;断行&amp;lt;/SPAN&amp;gt;&amp;lt;/H3&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;断行应遵循以下规则：&amp;lt;/P&amp;gt;&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
  &amp;lt;LI&amp;gt;外层的结构总在内层结构前断行。 &lt;br /&gt;
&amp;lt;/LI&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
  &amp;lt;LI&amp;gt;不同谓词的子句间至少用一空行加以分隔。&lt;br /&gt;
&amp;lt;/LI&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
  &amp;lt;LI&amp;gt;同一谓词的子句间&amp;lt;B&amp;gt;不要&amp;lt;/B&amp;gt;用空行分开。&lt;br /&gt;
  &amp;lt;/LI&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
  &amp;lt;LI&amp;gt;段关键字前至少留出一行空行。&amp;lt;/LI&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
  &amp;lt;LI&amp;gt;谓词调用不是嵌套时，自己独占一行。&amp;lt;/LI&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
  &amp;lt;LI&amp;gt;截断（不管它看起来多微小）占一行。&amp;lt;/LI&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
  &amp;lt;LI&amp;gt;子句头部独占一行。&amp;lt;/LI&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H3&amp;gt;&amp;lt;SPAN class=mw-headline&amp;gt;缩排&amp;lt;/SPAN&amp;gt;&amp;lt;/H3&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;缩排是指行首留出若干空格，它有以下规则：&amp;lt;/P&amp;gt;&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
  &amp;lt;LI&amp;gt;缩排的宽窄量要一致（比如都占4个空格）。 &amp;lt;/LI&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
  &amp;lt;LI&amp;gt;如果圆括号中的一组内容必须要分成若干行，则应在左括号后立即断行，之后的缩进应该增加一步，而不要与上面的左括号对齐。&amp;lt;/LI&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&amp;lt;H3&amp;gt;&amp;lt;SPAN class=mw-headline&amp;gt;列对齐&amp;lt;/SPAN&amp;gt;&amp;lt;/H3&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;不使用列对齐（列对齐是指使各个不在行首的结构排列对齐，在行首的构件的对齐使用缩排的规则）。&lt;br /&gt;
&amp;lt;/P&amp;gt;&lt;br /&gt;
&amp;lt;H3&amp;gt;&amp;lt;SPAN class=mw-headline&amp;gt;空格符&amp;lt;/SPAN&amp;gt;&amp;lt;/H3&amp;gt;&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
  &amp;lt;LI&amp;gt;逗号后加空格。 &amp;lt;/LI&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
  &amp;lt;LI&amp;gt;在函子（包括表）内，逗号后的空格可以略去。&lt;br /&gt;
&amp;lt;/LI&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
  &amp;lt;LI&amp;gt;谓词、事实、常数的声明中，在“:”前后加空格。 &amp;lt;/LI&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
  &amp;lt;LI&amp;gt;圆括号前后不要有空格，除非圆括号与诸如“ :- ”，“ : ”这样的通常前后有空格的记号相邻。&lt;br /&gt;
  &amp;lt;/LI&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&amp;lt;H2&amp;gt;&amp;lt;SPAN class=mw-headline&amp;gt;结构&amp;lt;/SPAN&amp;gt;&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;这节逐项讨论结构。&amp;lt;/P&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H3&amp;gt;&amp;lt;SPAN class=mw-headline&amp;gt;段&amp;lt;/SPAN&amp;gt;&amp;lt;/H3&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;段关键字独占一行。段关键字&amp;lt;B&amp;gt;不&amp;lt;/B&amp;gt;缩进，该段内的构件缩进一步。段间至少用一个空行来分隔。&amp;lt;/P&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;clauses &lt;br /&gt;
    p.&lt;br /&gt;
&lt;br /&gt;
clauses&lt;br /&gt;
    q.&amp;lt;/vip&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H3&amp;gt;&amp;lt;SPAN class=mw-headline&amp;gt;类、接口、实现等&amp;lt;/SPAN&amp;gt;&amp;lt;/H3&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;类的起始与结束各自独占一行。类的结束行总是包含有类的标识名，类中的段关键字不要缩进。&amp;lt;/P&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;class specialOutputFile : outputFile&lt;br /&gt;
predicates&lt;br /&gt;
    ...&lt;br /&gt;
end class specialOutputFile&amp;lt;/vip&amp;gt;&lt;br /&gt;
&lt;br /&gt;
其它的（接口、实现等）与此相同。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H3&amp;gt;&amp;lt;SPAN class=mw-headline&amp;gt;谓词声明&amp;lt;/SPAN&amp;gt;&amp;lt;/H3&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;谓词声明&amp;lt;B&amp;gt;总&amp;lt;/B&amp;gt;含有参数名，这些名字使用变量的格式。&amp;lt;B&amp;gt;procedure&amp;lt;/B&amp;gt;模式的声明可以省略。 &lt;br /&gt;
&amp;lt;/P&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;predicates&lt;br /&gt;
    increment : (integer X) -&amp;gt; integer Y.&lt;br /&gt;
    bubbleSort : (integer_list Input) -&amp;gt; integer_list SortedList.&lt;br /&gt;
    myPredicate_nd : (&lt;br /&gt;
            aVeryLongDomainName StrangeFirstParamanter, &lt;br /&gt;
            anotherLongDomainName PlainSecondParameter)&lt;br /&gt;
        nondeterm (i,o)&lt;br /&gt;
        determ (i,i).&amp;lt;/vip&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;P&amp;gt;注意左括号之后的断行及其后增加了的缩进。&amp;lt;/P&amp;gt;&lt;br /&gt;
&amp;lt;H3&amp;gt;&amp;lt;SPAN class=mw-headline&amp;gt;域&amp;lt;/SPAN&amp;gt;&amp;lt;/H3&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;函子&amp;lt;B&amp;gt;总要&amp;lt;/B&amp;gt;为其参数命名；这些名字使用变量的格式。如果一个域声明分为若干行，不管所有函子在一行还是分为若干行，也不管函子的参数都在一行还是分占若干行，都应在等号后做第一次断行。&lt;br /&gt;
&amp;lt;/P&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;domains&lt;br /&gt;
    value =&lt;br /&gt;
        int(integer Value);&lt;br /&gt;
        real(real Value);&lt;br /&gt;
        str(string Value).&lt;br /&gt;
&lt;br /&gt;
domains&lt;br /&gt;
    aVeryLongDomainName =&lt;br /&gt;
        x(integer X); y(integer Y).&lt;br /&gt;
&lt;br /&gt;
domains&lt;br /&gt;
    anotherLongDomainName =&lt;br /&gt;
        aFunctorWithManyArguments(&lt;br /&gt;
            integer X,&lt;br /&gt;
            integer Y,&lt;br /&gt;
            integer Z,&lt;br /&gt;
            integer RedColourComponent,&lt;br /&gt;
            integer BlueColourComponent,&lt;br /&gt;
            integer GreenColourComponent).&amp;lt;/vip&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H3&amp;gt;&amp;lt;SPAN class=mw-headline&amp;gt;子句&amp;lt;/SPAN&amp;gt;&amp;lt;/H3&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;子句的头部独占一行。子句体中各调用独占一行。如果一个子句的头部必须断行，则其参数应比头部多缩进两步，因为不这样它的缩进位置就会与子句体一样。&amp;lt;/P&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;clauses&lt;br /&gt;
    myPredicate(X, Y) :-&lt;br /&gt;
        callNoOne(X, Y, Z),&lt;br /&gt;
        !,&lt;br /&gt;
        callNoTwo(Z, Y).&lt;br /&gt;
    myPredicate(X, Y) :-&lt;br /&gt;
        callNoThree(X, Y).&lt;br /&gt;
&lt;br /&gt;
clauses&lt;br /&gt;
    aPredicateWithManyArguments(FirstArgument, SecondArgument,&lt;br /&gt;
            X, Y, Z, ErrorNo, ErrorMsg) :-&lt;br /&gt;
        callNoOne(FirstArgument, SecondArgument, X, Y, Z,&lt;br /&gt;
            ErrorNo, ErrorMsg),&lt;br /&gt;
        callNoTwo(…),&lt;br /&gt;
    …&amp;lt;/vip&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H4&amp;gt;&amp;lt;SPAN class=mw-headline&amp;gt;Non-deterministitic Loops&amp;lt;/SPAN&amp;gt;&amp;lt;/H4&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;对非确定调用结果的循环是Prolog中常用的一种结构。对这种结构建议把循环体加深缩进： &lt;br /&gt;
&amp;lt;/P&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;clauses&lt;br /&gt;
    myPredicate() :-&lt;br /&gt;
        member(X, [1,2,3,4,5,6]),&lt;br /&gt;
            doAction(X), % extra indentation in the &amp;quot;loop body&amp;quot;&lt;br /&gt;
        fail.&lt;br /&gt;
    myPredicate().&amp;lt;/vip&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;P&amp;gt;可能的话，尽量使用 &amp;lt;B&amp;gt;foreach&amp;lt;/B&amp;gt; 结构。&amp;lt;/P&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H2&amp;gt;&amp;lt;SPAN class=mw-headline&amp;gt;Microsoft Word中的代码格式化&amp;lt;/SPAN&amp;gt;&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;本节给出一些在Microsoft Word中便于格式化代码的提示。&amp;lt;/P&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;可以构造一个名为 &amp;lt;I&amp;gt;code&amp;lt;/I&amp;gt; 的段落格式，再构造一些字符格式：&amp;lt;I&amp;gt;keyword&amp;lt;/I&amp;gt;, &amp;lt;I&amp;gt;parameter&amp;lt;/I&amp;gt;, &amp;lt;I&amp;gt;var&amp;lt;/I&amp;gt;, &amp;lt;I&amp;gt;literal,&amp;lt;/I&amp;gt; 等。&lt;br /&gt;
&amp;lt;/P&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;&amp;lt;I&amp;gt;code&amp;lt;/I&amp;gt; 的段落格式可以用如下的属性：&amp;lt;/P&amp;gt;&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
  &amp;lt;LI&amp;gt;基于正文段落格式，它可以为下面的代码段提供合适的空间。&amp;lt;/LI&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
  &amp;lt;LI&amp;gt;关闭拼写检查等。&amp;lt;/LI&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
  &amp;lt;LI&amp;gt;缩进一个量，并将缺省的tab设为与这个量一致。这个量可以用0.63cm，因为这也是其它段落格式的缺省值。 &lt;br /&gt;
&amp;lt;/LI&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
  &amp;lt;LI&amp;gt;设置孤行控制等内容，避免程序不必要地跨页。&amp;lt;I&amp;gt;keyword&amp;lt;/I&amp;gt; 字符样式把字体改为Arial，粗体，暗绿色；&amp;lt;I&amp;gt;var&amp;lt;/I&amp;gt; &lt;br /&gt;
  把颜色改为绿色，&amp;lt;B&amp;gt;literal&amp;lt;/B&amp;gt; 把颜色改为蓝色。&amp;lt;/LI&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;输入代码时，先选择code段落格式。输入中使用软回车（shift+newline），用tab键缩进。&amp;lt;/P&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;&amp;lt;B&amp;gt;节省时间&amp;lt;/B&amp;gt;：可以用格式刷来搞定各种关键字的格式问题。&amp;lt;/P&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials部分中文译文]]&lt;/div&gt;</summary>
		<author><name>Yiding</name></author>
	</entry>
</feed>