Skip to content

Commit

Permalink
adding < procedure
Browse files Browse the repository at this point in the history
  • Loading branch information
fitzgen committed Feb 2, 2010
1 parent 13ea578 commit 8d33b17
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions scheme.adb
Expand Up @@ -542,6 +542,24 @@ procedure Scheme is
end loop;
end;

function Lt_Proc (Arguments : Access_Object) return Access_Object is
Result : Boolean := True;
Last_Val : Integer := Car(Arguments).all.Data.Int;
Args : Access_Object := Cdr(Arguments);
begin
loop
if Is_The_Empty_List(Args) then
return True_Singleton;
else
if not (Last_Val < Car(Args).all.Data.Int) then
return False_Singleton;
end if;
Last_Val := Car(Args).all.Data.Int;
Args := Cdr(Args);
end if;
end loop;
end;

function Is_Null_Proc (Arguments : Access_Object) return Access_Object is
begin
if Is_The_Empty_List(Car(Arguments)) then
Expand Down Expand Up @@ -681,6 +699,9 @@ procedure Scheme is
Define_Variable(Make_Symbol(To_Unbounded_String("=")),
Make_Primitive_Proc(Equal_Proc'access),
The_Global_Environment);
Define_Variable(Make_Symbol(To_Unbounded_String("<")),
Make_Primitive_Proc(Lt_Proc'access),
The_Global_Environment);
Define_Variable(Make_Symbol(To_Unbounded_String("null?")),
Make_Primitive_Proc(Is_Null_Proc'access),
The_Global_Environment);
Expand Down

0 comments on commit 8d33b17

Please sign in to comment.