package Ġit . uni bo . tup ro log . examples . un ify Ċ Ċ import Ġit . uni bo . tup ro log . core . Integer Ċ import Ġit . uni bo . tup ro log . core . Numeric Ċ import Ġit . uni bo . tup ro log . core . Scope Ċ import Ġit . uni bo . tup ro log . core . Term Ċ import Ġit . uni bo . tup ro log . un ify . Abstract Un ific ator Ċ Ċ /** Ċ Ġ* Ċ Ġ* Ċ Ġ* Ġ@ author ĠL oren zo Ċ Ġ*/ Ċ fun Ġmain () Ġ{ ĊĠĠĠ ĠScope . empty Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġun ific ator Ġ= Ġobject Ġ: ĠAbstract Un ific ator () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcheck Terms Equality ( first : ĠTerm , Ġsecond : ĠTerm ): ĠBoolean Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirst Ġis ĠInteger Ġ&& Ġsecond Ġis ĠInteger Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirst . value . absolute Value . compareTo ( second . value . absolute Value ) Ġ== Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirst Ġis ĠNumeric Ġ&& Ġsecond Ġis ĠNumeric Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirst . decimal Value . absolute Value . compareTo ( second . decimal Value . absolute Value ) Ġ== Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfirst Ġ== Ġsecond ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġterm 1 Ġ= Ġstruct Of (" f ", ĠnumOf (" 1 ")) ĊĠĠĠĠĠĠĠ Ġval Ġterm 2 Ġ= Ġstruct Of (" f ", ĠnumOf ("- 1 ")) ĊĊĠĠĠĠĠĠĠ Ġval Ġmatch Ġ= Ġun ific ator . match ( term 1 , Ġterm 2 ) Ġ// Ġtrue ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġun ific ator . un ify ( term 1 , Ġterm 2 ) Ġ// Ġf ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġprintln ( match ) ĊĠĠĠĠĠĠĠ Ġprintln ( result ) ĊĠĠĠ Ġ} Ċ } Ċ