Data update
This commit is contained in:
parent
4bb20c9b71
commit
cbaf4c4b64
12390 changed files with 318560 additions and 27248 deletions
|
|
@ -0,0 +1,65 @@
|
|||
get "libhdr"
|
||||
|
||||
let indexof(ch, s) = valof
|
||||
for i = 0 to s%0 do
|
||||
if s%i = ch resultis i
|
||||
|
||||
let copy(sin, sout) be
|
||||
for i = 0 to sin%0 do
|
||||
sout%i := sin%i
|
||||
|
||||
let streq(a, b) = valof
|
||||
$( for i = 0 to a%0 do
|
||||
unless a%i = b%i resultis false
|
||||
resultis true
|
||||
$)
|
||||
|
||||
let movetofront(s, ch) be
|
||||
$( let i = indexof(ch, s)
|
||||
for j = i to 2 by -1 do
|
||||
s%j := s%(j-1)
|
||||
s%1 := ch
|
||||
$)
|
||||
|
||||
let encode(s, alph, v) be
|
||||
$( let a = vec 1+256/BYTESPERWORD
|
||||
copy(alph, a)
|
||||
for i = 1 to s%0
|
||||
$( let c = indexof(s%i, a)
|
||||
v!(i-1) := c-1
|
||||
movetofront(a, s%i)
|
||||
$)
|
||||
$)
|
||||
|
||||
let decode(v, n, alph, s) be
|
||||
$( let a = vec 1+256/BYTESPERWORD
|
||||
copy(alph, a)
|
||||
s%0 := n
|
||||
for i = 0 to n-1
|
||||
$( let c = a%(v!i+1)
|
||||
s%(i+1) := c
|
||||
movetofront(a, c)
|
||||
$)
|
||||
$)
|
||||
|
||||
let show(s) be
|
||||
$( let enc = vec 256
|
||||
let dec = vec 1+256/BYTESPERWORD
|
||||
let alph = "abcdefghijklmnopqrstuvwxyz"
|
||||
|
||||
writes(s)
|
||||
writes(" -> ")
|
||||
encode(s, alph, enc)
|
||||
for i = 0 to s%0-1 do writef("%N ", enc!i)
|
||||
writes("-> ")
|
||||
decode(enc, s%0, alph, dec)
|
||||
writes(dec)
|
||||
test streq(s, dec)
|
||||
writes(" (ok)*N") or writes(" (fail)*N")
|
||||
$)
|
||||
|
||||
let start() be
|
||||
$( show("broood")
|
||||
show("bananaaa")
|
||||
show("hiphophiphop")
|
||||
$)
|
||||
Loading…
Add table
Add a link
Reference in a new issue