Jess 中列表的第一个元素(Lisp 中称为列表的 car)通常被称列表的头。
3.5.注释
Jess 支持两种类型的程序注释。Lisp 风格的行注释和 C 风格的块注释。行注释是以分号开
头,延伸到文本中本行的最后。这里有一个行注释的例子:
; This is a list
(a b c)
块注释就和他们在 C 语言中的用法一样:他们以两个特征符"/*"开始,以"*/"结束。块注释
不能嵌套。
/*
Here is an example of a list (commented out):
(a b c)
*/
注释可以在 Jess 程序的任何地方出现,包括模板和规则的结构里。
3.6.函数调用
和 Lisp 一样,Jess 中的所有代码(控制结构,分配,程序调用)都是以函数调用的方式进
行的。没有操作器,一切都是函数调用。然而,有些函数的名字使它们看起来像是 Java 操
作器,在这种情况下,它们就和它们的 Java 副本工作的非常相似。
Jess 中的函数调用可以理解为简单的列表。函数调用采用前缀表示,如果一个列表的头部
是一个已经存在的函数的符号,那么它就可以称为是一个函数调用。举例来说,用+函数
来算 2 和 3 相加的表达式应该写为(+ 2 3)。在计算时,这个表达式的结果是数字 5(不是一
个仅包含数字 5 的列表!)。通常来说,在合适的时候表达式都被看作是这样并通过上下
文求值。你可以在 Jess>提示符后键入表达式。Jess 计算表达式并打印出结果:
Jess> (+ 2 3)
5
Jess> (+ (+ 2 3) (* 3 3))
14
注意你可以嵌套调用函数;外部函数是形成内部函数调用计算的因素。
Jess 自身带有大量的内置函数,它们可以用来做一切事情,如数学计算,程序控制和字符
处理,让你能够使用 Java 的 API 函数。当然你也可以在 Jess 语言或者是 Java 语言中定义自
己的函数。
其中一个最经常用的函数是 printout,它是用来发送文本到 Jess 的标准输出窗口,或者是输
出到一个文件中。完善的解释你必须等待,但是现在,你所要了解的都包含在下面这个例
子中:
Jess> (printout t "The answer is " 42 "!" crlf)
The answer is 42!
另一个常用的函数是 batch,它是用来计算一个包含 Jess 代码文件的。要运行 Jess 源文件
examples/jess/hello.clp,你可以键入:
ess> (batch "examples/jess/hello.clp")
Hello, world!
Jess 自带的其他的所有函数的详细说明都在 Jess function guide.。