输入: ( + 2 2)
输出:4

输入:if(< 2 3) then (printout t "2 is less than 3" crlf)   ;变量可控制
输出:if
Jess> TRUE
Jess> then
Jess> 2 is less than 3

crlf 是换行,类似于\n

输入:(bind ?x (+ (* 20 3) ( - 37 23)))
输出:74

输入:(+ (+ 2 3) (* 3 3) )
输出:14

输入:long aLongValue=123456789L;
    (bind ?aLongValue (long "123456789"))
输出:123456789
即使调用已经赋值的变量,bind函数还是给变量重新假设了一个数值

输入:(bind ?x "The value")
输出:"The value"
弱变量

输入:(bind ?a (+ 2 2))
输出:4
输入:?a
输出:4
输入:(+ ?a 2)
输出:2

Jess> (defglobal ?*x* = 3)
TRUE
Jess> ?*x*
3
Jess> (bind ?*x* 4)
4
Jess> ?*x*
4
Jess> (reset) ;; Jess will reset ?*x* to its initial value of 3
TRUE
Jess> ?*x*
3
Jess> (bind ?*x* 4)
4
Jess> (set-reset-globals nil)
FALSE
Jess> (reset) ;; This time, ?*x* will not be changed.
TRUE
Jess> ?*x*
4

Jess> (bind ?grocery-list (create$ eggs bread milk))
(eggs bread milk)
Jess> (printout t (nth$ 2 ?grocery-list) crlf)
bread
Jess> (first$ ?grocery-list)
(eggs)
Jess> (rest$ ?grocery-list)
(bread milk)
Jess> (bind ?more-groceries (create$ ?grocery-list salt soap))
(eggs bread milk salt soap)

循环语句foreach
格式:(foreach <variable> <list> <expression>+)

Jess> (bind ?grocery-list (create$ eggs milk bread))
(eggs milk bread)
Jess> (foreach ?e ?grocery-list(printout t ?e crlf))
eggs
milk
bread

while语句
格式:(while <Boolean expression> do <expression>+)

(bind ?i 1)

(bind ?sum 0)

(while(<= ?i 10) do (bind ?sum (+ ?sum ?i)) (bind ?i (+ ?i 1)))

?sum

if-then-else
格式:(if <Boolean expression> then <expression>+ [else <expression>+])

Jess> (bind ?grocery-list (create$ eggs milk bread))
(eggs milk bread)
Jess> (if (member$ eggs ?grocery-list) then (printout t "I need to buy eggs" crlf) else (printout t "No eggs, thanks" crlf))
I need to buy eggs
Jess> (bind ?x 1)
1
Jess> (if (= ?x 3) then
(printout t "?x is three." crlf)
else
(if (= ?x 2) then
(printout t "?x is two." crlf)
else
(if (= ?x 1) then
(printout t "?x is one." crlf))))
?x is one.

The progn function evaluates a list of expressions and returns the value of the
last one:
(progn <expression>+)
The progn function is useful when you need to group multiple expressions
together into one expression, usually due to syntax restrictions of other functions,
as in the following example:
Jess> (bind ?n 2)
2
Jess> (while (progn (bind ?n (* ?n ?n)) (< ?n 1000)) do
(printout t ?n crlf))
4
16
256
FALSE

(apply (read) 1 2 3)
*
6

(apply (read) 1 2 3)
+
6

(apply (read) 1 2 3)
-
-4

Jess> (is-a-function printout)
TRUE
Jess> (is-a-function deftemplate)
FALSE

Jess> (call ?prices put bread 0.99)
Jess> (call ?prices put peas 1.99)
Jess> (call ?prices put beans 1.79)
Jess> (call ?prices get peas)
1.99

现在已经能明白一些吧?完事开头难,进了门后面的就方便多了。

(bind ?pt (new java.awt.Point))
(set-member ?pt x 37)
(set-member ?pt y 42)
(get-member ?pt x)

(deffunction parseInt (?string)
(try
(bind ?i (call Integer parseInt ?string))
(printout t "The answer is " ?i crlf)
catch
(printout t "Invalid argument" crlf)))

(parrseInt "10")  ;合法
(parrseInt "dd")  ;非法

Jess的一些使用示例相关推荐

  1. Jess 7.2p2——Java平台规则引擎官方文档翻译1

    Jess 7.2p2--Java平台规则引擎官方文档翻译1 本博客转载自本体小本营. 1.入门 1.1.需求 在使用Jess前请先确认JVM是否正确安装并能正常工作. 使用JessDE集成开发环境,你 ...

  2. Neo4j官方示例数据库

    使用官方示例数据库脚本: CREATE (TheMatrix:Movie {title:'The Matrix', released:1999, tagline:'Welcome to the Rea ...

  3. .net连接mysql数据_.net连接MYSQL数据库的方法及示例!

    连接MYSQL数据库的方法及示例 方法一: 使用MYSQL推出的MySQL Connector/Net is an ADO.NET driver for MySQL 该组件为MYSQL为ADO.NET ...

  4. CPU Cache原理与示例

    CPU Cache原理与示例 基础知识 现在的 CPU 多核技术,都会有几级缓存,老的 CPU 会有两级内存(L1 和 L2),新的CPU会有三级内存(L1,L2,L3 ),如下图所示: 其中:  ...

  5. 编译器 llvm clang 源码转换示例

    编译器 llvm clang 源码转换示例 从git获取llvm项目的源码方式: git clone https://github.com/llvm/llvm-project.git 下载源码后,进入 ...

  6. Cache Memory技术示例

    Cache Memory技术示例 为什么需要cache?如何判断一个数据在cache中是否命中?cache的种类有哪些,区别是什么? 为什么需要cache memory 先思考第一个问题:程序是如何运 ...

  7. Swift与LLVM-Clang原理与示例

    Swift与LLVM-Clang原理与示例 LLVM 学习 从 简单汇编基础 到 Swift 不简单的 a + 1 作为iOS开发,程序崩溃犹如家常便饭,秉着没有崩溃也要制造崩溃的原则 每天都吃的很饱 ...

  8. C语言与OpenCL的编程示例比较

    C语言与OpenCL的编程示例比较 OpenCL支持数据并行,任务并行编程,同时支持两种模式的混合.对于同步 OpenCL支持同一工作组内工作项的同步和命令队列中处于同一个上下文中的 命令的同步. 在 ...

  9. OpenCL框架与示例

    OpenCL框架与示例 下面的图简单说明了OpenCL的编程框架,图是用的GPU,其他类似: 名词的概念: Platform (平台):主机加上OpenCL框架管理下的若干设备构成了这个平台,通过这个 ...

最新文章

  1. linux高效办公环境配置(vim、tmux、bash_profile)
  2. SQL repeat()函数
  3. 在路由器上设置虚拟ftp服务器,怎么在路由器上开启ftp服务器配置
  4. 时间戳引起的网站访问不了的问题(net.ipv4.tcp_timestamps)
  5. MCPlayerKit 0.0.6 Release
  6. Windows下安装ab
  7. [图]罗技推出背光键盘
  8. 计算机专业的口号运动会四字,计算机系运动会口号
  9. 软件测试从业者,Linux知识从入门到玩转(必读)
  10. python将jwths256加密——pyjwt库
  11. 覆盖原有div或者Input的鼠标移上去描述
  12. 基于微信小程序的二手交易平台源码
  13. 服务端(Win server2012)+IIS管理器配置PHP服务器并部署网站讲解
  14. matlab 打不开 slx,matlab2014a打不开仿真参数设置对话框怎么办
  15. jdbc——mysql学习
  16. AndroidStudio的强大搜索功能介绍!全局搜索、搜索文件、搜索类、搜索文本、搜索一切
  17. 【C语言】----找出100以内的所有质数(素数),并且输出前十个
  18. 视觉SLAM14讲笔记分享——第四章【李群与李代数】
  19. SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛*(抽球游戏-fwt开立方)
  20. MATLAB之——Kronecker积

热门文章

  1. Android TextView设置.9图片为背景,文字被遮挡
  2. Python新建一个文件目录,python怎么创建新文件
  3. 电影《功夫熊猫2》中的管理知识
  4. 计算机远程用户屏蔽,允许/阻止用户使用远程桌面服务进行远程连接
  5. 2022N1叉车司机考题及答案
  6. wow Onyxia
  7. 声音均衡器怎么调好听_均衡器怎么调能达到最佳效果(十段均衡器最佳效果图)...
  8. 平行四边形符号怎么打?
  9. nginx下使用SSI
  10. 1个人+3万元+每天5小时一年赚30万现金……你干不干?