Hammurabi是一个Scala编写的规则引擎,适合实现便于阅读的内部DSL。与其他DSL不同的是,Hammurabi可直接使用宿主语言编写和编译规则。
示例规则:
rule("PersotoFred’simmediaterightiswearigbluepats")let{ valp1=kidOf[Perso]havig(_.ame=="Fred") valp2=ay(kidOf[Perso]) whe{ p2.posequalsp1.pos+1 }the{ assigcolor"blue"top2 }}
评论