type pinteger = ^integer;
realarray = array[0..10] of real;
pintarray = array[0..10] of pinteger;
listoffixnumscell = record
cdr : ^listoffixnumscell;
function pfoo ( var a : integer ;
var d : listoffixnumscell) : integer;
writeln(' a:',a, ' b[0]:', b[0], ' b[1]:', b[1]);
writeln(' c (first):', c[0]^,' c (second):', c[1]^);
writeln(' ( ', d.fixnum^, d.cdr^.fixnum^, ' ...) ');
{ the function pmemq looks for the lisp pointer given as the first argument
in the list pointed to by the second argument.
Note that we declare " a : integer " instead of " var a : integer " since
we are interested in the pointer value instead of what it points to (which
could be any lisp object)
function pmemq( a : integer; list : plistcell) : plistcell;
while (list <> nil) and (list^.car <> a) do list := list^.cdr;