Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
10
Task/Ackermann-function/CLIPS/ackermann-function-1.clips
Normal file
10
Task/Ackermann-function/CLIPS/ackermann-function-1.clips
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
(deffunction ackerman
|
||||
(?m ?n)
|
||||
(if (= 0 ?m)
|
||||
then (+ ?n 1)
|
||||
else (if (= 0 ?n)
|
||||
then (ackerman (- ?m 1) 1)
|
||||
else (ackerman (- ?m 1) (ackerman ?m (- ?n 1)))
|
||||
)
|
||||
)
|
||||
)
|
||||
68
Task/Ackermann-function/CLIPS/ackermann-function-2.clips
Normal file
68
Task/Ackermann-function/CLIPS/ackermann-function-2.clips
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
(deffacts solve-items
|
||||
(solve 0 4)
|
||||
(solve 1 4)
|
||||
(solve 2 4)
|
||||
(solve 3 4)
|
||||
)
|
||||
|
||||
(defrule acker-m-0
|
||||
?compute <- (compute 0 ?n)
|
||||
=>
|
||||
(retract ?compute)
|
||||
(assert (ackerman 0 ?n (+ ?n 1)))
|
||||
)
|
||||
|
||||
(defrule acker-n-0-pre
|
||||
(compute ?m&:(> ?m 0) 0)
|
||||
(not (ackerman =(- ?m 1) 1 ?))
|
||||
=>
|
||||
(assert (compute (- ?m 1) 1))
|
||||
)
|
||||
|
||||
(defrule acker-n-0
|
||||
?compute <- (compute ?m&:(> ?m 0) 0)
|
||||
(ackerman =(- ?m 1) 1 ?val)
|
||||
=>
|
||||
(retract ?compute)
|
||||
(assert (ackerman ?m 0 ?val))
|
||||
)
|
||||
|
||||
(defrule acker-m-n-pre-1
|
||||
(compute ?m&:(> ?m 0) ?n&:(> ?n 0))
|
||||
(not (ackerman ?m =(- ?n 1) ?))
|
||||
=>
|
||||
(assert (compute ?m (- ?n 1)))
|
||||
)
|
||||
|
||||
(defrule acker-m-n-pre-2
|
||||
(compute ?m&:(> ?m 0) ?n&:(> ?n 0))
|
||||
(ackerman ?m =(- ?n 1) ?newn)
|
||||
(not (ackerman =(- ?m 1) ?newn ?))
|
||||
=>
|
||||
(assert (compute (- ?m 1) ?newn))
|
||||
)
|
||||
|
||||
(defrule acker-m-n
|
||||
?compute <- (compute ?m&:(> ?m 0) ?n&:(> ?n 0))
|
||||
(ackerman ?m =(- ?n 1) ?newn)
|
||||
(ackerman =(- ?m 1) ?newn ?val)
|
||||
=>
|
||||
(retract ?compute)
|
||||
(assert (ackerman ?m ?n ?val))
|
||||
)
|
||||
|
||||
(defrule acker-solve
|
||||
(solve ?m ?n)
|
||||
(not (compute ?m ?n))
|
||||
(not (ackerman ?m ?n ?))
|
||||
=>
|
||||
(assert (compute ?m ?n))
|
||||
)
|
||||
|
||||
(defrule acker-solved
|
||||
?solve <- (solve ?m ?n)
|
||||
(ackerman ?m ?n ?result)
|
||||
=>
|
||||
(retract ?solve)
|
||||
(printout t "A(" ?m "," ?n ") = " ?result crlf)
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue