Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,4 +0,0 @@
|
|||
function fibor(integer n)
|
||||
if n<2 then return n end if
|
||||
return fibor(n-1)+fibor(n-2)
|
||||
end function
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
function fiboi(integer n)
|
||||
integer f0=0, f1=1, f
|
||||
if n<2 then return n end if
|
||||
for i=2 to n do
|
||||
f=f0+f1
|
||||
f0=f1
|
||||
f1=f
|
||||
end for
|
||||
return f
|
||||
end function
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
function fibot(integer n, integer u = 1, integer s = 0)
|
||||
if n < 1 then
|
||||
return s
|
||||
else
|
||||
return fibot(n-1,u+s,u)
|
||||
end if
|
||||
end function
|
||||
|
||||
-- example:
|
||||
? fibot(10) -- says 55
|
||||
|
|
@ -1,78 +0,0 @@
|
|||
include std/mathcons.e -- for PINF constant
|
||||
|
||||
enum ADD, MOVE, GOTO, OUT, TEST, TRUETO
|
||||
|
||||
global sequence tape = { 0,
|
||||
1,
|
||||
{ ADD, 2, 1 },
|
||||
{ TEST, 1, PINF },
|
||||
{ TRUETO, 0 },
|
||||
{ OUT, 1, "%.0f\n" },
|
||||
{ MOVE, 2, 1 },
|
||||
{ MOVE, 0, 2 },
|
||||
{ GOTO, 3 } }
|
||||
|
||||
global integer ip
|
||||
global integer test
|
||||
global atom accum
|
||||
|
||||
procedure eval( sequence cmd )
|
||||
atom i = 1
|
||||
while i <= length( cmd ) do
|
||||
switch cmd[ i ] do
|
||||
case ADD then
|
||||
accum = tape[ cmd[ i + 1 ] ] + tape[ cmd[ i + 2 ] ]
|
||||
i += 2
|
||||
|
||||
case OUT then
|
||||
printf( 1, cmd[ i + 2], tape[ cmd[ i + 1 ] ] )
|
||||
i += 2
|
||||
|
||||
case MOVE then
|
||||
if cmd[ i + 1 ] = 0 then
|
||||
tape[ cmd[ i + 2 ] ] = accum
|
||||
else
|
||||
tape[ cmd[ i + 2 ] ] = tape[ cmd[ i + 1 ] ]
|
||||
end if
|
||||
i += 2
|
||||
|
||||
case GOTO then
|
||||
ip = cmd[ i + 1 ] - 1 -- due to ip += 1 in main loop
|
||||
i += 1
|
||||
|
||||
case TEST then
|
||||
if tape[ cmd[ i + 1 ] ] = cmd[ i + 2 ] then
|
||||
test = 1
|
||||
else
|
||||
test = 0
|
||||
end if
|
||||
i += 2
|
||||
|
||||
case TRUETO then
|
||||
if test then
|
||||
if cmd[ i + 1 ] = 0 then
|
||||
abort(0)
|
||||
else
|
||||
ip = cmd[ i + 1 ] - 1
|
||||
end if
|
||||
end if
|
||||
|
||||
end switch
|
||||
i += 1
|
||||
end while
|
||||
end procedure
|
||||
|
||||
test = 0
|
||||
accum = 0
|
||||
ip = 1
|
||||
|
||||
while 1 do
|
||||
|
||||
-- embedded sequences (assumed to be code) are evaluated
|
||||
-- atoms (assumed to be data) are ignored
|
||||
|
||||
if sequence( tape[ ip ] ) then
|
||||
eval( tape[ ip ] )
|
||||
end if
|
||||
ip += 1
|
||||
end while
|
||||
Loading…
Add table
Add a link
Reference in a new issue