Category:Programming Languages: Difference between revisions
Content added Content deleted
No edit summary |
|||
Line 7: | Line 7: | ||
'''Note:''' Because this category is used for automated administration, it should contain only categories that represent individual languages, not groups of languages. |
'''Note:''' Because this category is used for automated administration, it should contain only categories that represent individual languages, not groups of languages. |
||
Here is a sample sorting program. |
|||
<lang CafeOB> |
|||
mod! SORTING-NAT { |
|||
pr(NAT) |
|||
[Nat < Strg ] |
|||
-- Simple list structure |
|||
op nil : -> Strg |
|||
op _._ : Strg Strg -> Strg { assoc id: nil } |
|||
vars N N' : Nat |
|||
-- A very short sorting program using transitions in POA logic, which is a type of rewrite logic |
|||
ctrans [swap] : (N . N') => (N' . N) if N' <= N . |
|||
} |
|||
**> Sorting natural numbers using exec command |
|||
open SORTING-NAT |
|||
exec (3 . 2 . 1) . |
|||
**> Sorting natural numbers using search command |
|||
**> we can use (show path N) with this command, where N is the nuber of possible states. |
|||
red (3 . 2 . 1) =(1,1)=>* (1 . 2 . 3) . |
|||
red (3 . 2 . 1) =(1,2)=>* (1 . 2 . 3) . |
|||
red (3 . 2 . 1) =(1,3)=>* (1 . 2 . 3) . |
|||
**> search for any number of solutions at any depth |
|||
red (3 . 2 . 1) =(*,*)=>* (1 . 2 . 3) . |
|||
**> print the transitions from initial to goal state |
|||
show path 5 |
|||
eof |
|||
</lang> |