Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,35 @@
|
|||
mod! SIMPLE-LIST(X :: TRIV){
|
||||
[NeList < List ]
|
||||
op [] : -> List
|
||||
op [_] : Elt -> List
|
||||
op (_:_) : Elt List -> NeList -- consr
|
||||
op _++_ : List List -> List {assoc} -- concatenate
|
||||
var E : Elt
|
||||
vars L L' : List
|
||||
eq [ E ] = E : [] .
|
||||
eq [] ++ L = L .
|
||||
eq (E : L) ++ L' = E : (L ++ L') .
|
||||
}
|
||||
|
||||
mod! QUICKSORT{
|
||||
pr(SIMPLE-LIST(NAT))
|
||||
op qsort_ : List -> List
|
||||
op smaller__ : List Nat -> List
|
||||
op larger__ : List Nat -> List
|
||||
|
||||
vars x y : Nat
|
||||
vars xs ys : List
|
||||
|
||||
eq qsort [] = [] .
|
||||
eq qsort (x : xs) = (qsort (smaller xs x)) ++ [ x ] ++ (qsort (larger xs x)) .
|
||||
|
||||
eq smaller [] x = [] .
|
||||
eq smaller (x : xs) y = if x <= y then (x : (smaller xs y)) else (smaller xs y) fi .
|
||||
eq larger [] x = [] .
|
||||
eq larger (x : xs) y = if x <= y then (larger xs y) else (x : (larger xs y)) fi .
|
||||
|
||||
}
|
||||
open QUICKSORT .
|
||||
red qsort(5 : 4 : 3 : 2 : 1 : 0 : []) .
|
||||
red qsort(5 : 5 : 4 : 3 : 5 : 2 : 1 : 1 : 0 : []) .
|
||||
eof
|
||||
Loading…
Add table
Add a link
Reference in a new issue