TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy

TEAM-ADA@LISTSERV.ACM.ORG

Options: Use Forum View

Use Proportional Font
Show HTML Part by Default
Condense Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Sender:
"Team Ada: Ada Advocacy Issues (83 & 95)" <[log in to unmask]>
Date:
Wed, 21 Apr 1999 14:57:04 +0800
Reply-To:
Subject:
MIME-Version:
1.0
Content-Transfer-Encoding:
7bit
Content-Type:
text/plain; charset="us-ascii"
Organization:
Edith Cowan University
From:
Rick Duley <[log in to unmask]>
Parts/Attachments:
text/plain (58 lines)
Hi teamers,

        I was badly caught out the other day teaching CS1.  We were working with
functions, specifically:

function Max(Left, Right : Integer) return Integer is
begin  --  Max
   if Left > Right then
      return Left;
   else
      return Right;
   end if;
end Max;

        I wanted to use the function as a binary operator, hence:

function "#"(Left, Right : Integer) return Integer is
begin  --  #
   if Left > Right then
      return Left;
   else
      return Right;
   end if;
end "#";

        expecting to be able to use:

        My_Integer_Io.Put(Value1 # Value2);  or
        My_Integer_Io.Put("#"(Value1, Value2);

        My thinking was that, since the function identifier is a string, I should
be able to use any character as an operator.  Of course, it turns out that
I can only overload existing operators, but then:

        My_Integer_Io.Put(Value1 + Value2);  or
        My_Integer_Io.Put("*"(Value1, Value2);

        when the result is a maximum is very misleading.

        Two questions:
1. Is it possible to generate user defined binary operators?
2. If not, then why not?


--------------------------------------------------------------------------
Rick Duley
Edith Cowan University
Perth, Western Australia

tel: +61 (08) 9370 6619
                                                                   /-_|\
fax: +61 (08) 9370 6100                                           /     \
                                                            perth *_.-._/
"The lonliest place in the world                                       v
                          is the loosin' champ's dressin' room!"
                                                             (Jack Dempsey)
"He wasn't an Ada programmer in Perth!" (Rick Duley) J

ATOM RSS1 RSS2