Составители:
Рубрика:
{2} function Head ( x : H_list ): H_list;
begin
if Null( x ) then
begin WriteLn; WriteLn( ' ! Head( Nil ) ' ); Halt ;
end
else
if Atom( x ) then
begin WriteLn; WriteLn( ' ! Head( Atom ) ' ); Halt;
end
else Head := x ^ . Hd;
end { Head };
{3} function Tail ( x : H_list ): H_list;
begin
if Null( x ) then
begin WriteLn; WriteLn( ' ! Tail( Nil ) ' ); Halt;
end
else
if Atom( x ) then
begin WriteLn; WriteLn( ' ! Tail( Atom ) ' ); Halt;
end
else Tail := x ^ . Tl;
end { Tail };
{4} function Cons ( x, y : H_list ): H_list;
var p : H_list;
begin
if Atom( y ) then
begin WriteLn; WriteLn( ' ! Cons( x, Atom ) ' ); Halt; end
else
if MaxAvail >= SizeOf( S_expr ) then
begin New( p );
p ^ . Tag:= Pair; p ^ . Hd := x; p ^ . Tl := y;
Cons := p;
end
else
begin WriteLn; WriteLn( ' ! Исчерпана память ' ); Halt;
end;
end { Cons };
{5} function Atom ( x : H_list ): Boolean;
begin
if Null ( x ) then Atom := false
else Atom := ( x ^.Tag = Atomic );
end { Atom };
27
{2} function Head ( x : H_list ): H_list; begin if Null( x ) then begin WriteLn; WriteLn( ' ! Head( Nil ) ' ); Halt ; end else if Atom( x ) then begin WriteLn; WriteLn( ' ! Head( Atom ) ' ); Halt; end else Head := x ^ . Hd; end { Head }; {3} function Tail ( x : H_list ): H_list; begin if Null( x ) then begin WriteLn; WriteLn( ' ! Tail( Nil ) ' ); Halt; end else if Atom( x ) then begin WriteLn; WriteLn( ' ! Tail( Atom ) ' ); Halt; end else Tail := x ^ . Tl; end { Tail }; {4} function Cons ( x, y : H_list ): H_list; var p : H_list; begin if Atom( y ) then begin WriteLn; WriteLn( ' ! Cons( x, Atom ) ' ); Halt; end else if MaxAvail >= SizeOf( S_expr ) then begin New( p ); p ^ . Tag:= Pair; p ^ . Hd := x; p ^ . Tl := y; Cons := p; end else begin WriteLn; WriteLn( ' ! Исчерпана память ' ); Halt; end; end { Cons }; {5} function Atom ( x : H_list ): Boolean; begin if Null ( x ) then Atom := false else Atom := ( x ^.Tag = Atomic ); end { Atom }; 27
Страницы
- « первая
- ‹ предыдущая
- …
- 25
- 26
- 27
- 28
- 29
- …
- следующая ›
- последняя »