comp.lang.ada
 help / color / mirror / Atom feed
From: ka@sorry.no.email (Kenneth Almquist)
Subject: What evil would happen?
Date: 15 Jul 2003 01:16:50 -0400
Date: 2003-07-15T01:16:50-04:00	[thread overview]
Message-ID: <bf02o2$dno$1@shell.monmouth.com> (raw)
In-Reply-To: 5ad0dd8a.0307111151.4a08f95a@posting.google.com

wojtek@power.com.pl (Wojtek Narczynski) wrote:
> I feel like with SML like tagged union datatypes I'd be done long
> ago... Is there an AI for this maybe?

I'm not sure what the problem is here.  In SML you can write
things such as:

    datatype tree = Leaf of int
                  | Tree of {
                        value : int,
                        left : tree,
                        right : tree
                    }
                  | Empty

In Ada, you achieve the same effect by writing:

    type Tree_Tag is (Leaf, General_Tree, Empty);
    type Tree(Tag : Tree_Tag);
    type Tree_Ptr is access Tree;
    type Tree(Tag : Tree_Tag) is record
        case Tag is
            when Leaf =>
                Leaf : Integer;
            when General_Tree =>
                Value : Integer;
                Left : Tree_Ptr;
                Right : Tree_Ptr;
            when Empty =>
                null;
        end case;
    end record;

The Ada code is slightly more complex than the SML code because in
Ada we have to include a type declaration for the tag, and have to
declare an access type.  (The reason we have to declare an access
type in Ada but not in SML is that in SML the fields of a tree cannot
be modified after a tree is created, so the semantics of SML don't
need to distinguish between a tree and a pointer to a tree.)
				Kenneth Almquist



  parent reply	other threads:[~2003-07-15  5:16 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-11 19:51 What evil would happen? Wojtek Narczynski
2003-07-11 20:07 ` Hyman Rosen
2003-07-12 12:30   ` Wojtek Narczynski
2003-07-12 17:17     ` Martin Dowie
2003-07-13  1:46     ` Hyman Rosen
2003-07-13 15:29       ` Wojtek Narczynski
2003-07-11 20:08 ` chris.danx
2003-07-12  4:31   ` Nick Roberts
2003-07-12 12:26     ` Wojtek Narczynski
2003-07-12 12:39       ` Preben Randhol
2003-07-12 13:11         ` Larry Kilgallen
2003-07-12 13:22           ` Preben Randhol
2003-07-12 19:04             ` Larry Kilgallen
2003-07-14  8:43               ` Preben Randhol
2003-07-14 10:32                 ` Larry Kilgallen
2003-07-14 11:05                   ` Preben Randhol
2003-07-14 11:31                   ` Larry Kilgallen
     [not found]                   ` <slrnbh53ir.48d.Organization: LJK Software <zSeTW0M3CTPU@eisner.encompasserve.org>
2003-07-14 17:31                     ` Wojtek Narczynski
2003-07-13 15:26             ` Wojtek Narczynski
2003-07-13 17:28               ` Chad R. Meiners
2003-07-13 22:35                 ` Wojtek Narczynski
2003-07-14  0:06                   ` Chad R. Meiners
2003-07-13 22:36                 ` Wojtek Narczynski
2003-07-14  3:01                 ` Hyman Rosen
2003-07-14  4:41                   ` Chad R. Meiners
2003-07-14 23:32                   ` [ot] languages & academia was " chris.danx
2003-07-14  9:09                 ` Dmitry A. Kazakov
2003-07-14 17:44                   ` Chad R. Meiners
2003-07-14 18:15                     ` tmoran
2003-07-15  8:06                     ` Dmitry A. Kazakov
2003-07-11 21:26 ` Robert I. Eachus
2003-07-12 12:38   ` Wojtek Narczynski
2003-07-16  0:07     ` Robert I. Eachus
2003-07-16  8:11       ` Preben Randhol
2003-07-14 18:52 ` Randy Brukardt
2003-07-14 20:12   ` Hyman Rosen
2003-07-15  2:32   ` Alexander Kopilovitch
2003-07-15  8:19   ` Wojtek Narczynski
2003-07-15 17:33     ` Randy Brukardt
2003-07-16  0:22       ` Robert I. Eachus
2003-07-16  8:36       ` Dmitry A. Kazakov
2003-07-15  5:16 ` Kenneth Almquist [this message]
2003-07-15 11:31   ` Wojtek Narczynski
2003-07-18  8:23 ` Wojtek Narczynski
2003-07-18 14:45   ` Hyman Rosen
2003-07-19  0:55   ` Robert I. Eachus
  -- strict thread matches above, loose matches on Subject: below --
2003-07-11 23:04 Beard, Frank Randolph CIV
2003-07-12 12:46 ` Wojtek Narczynski
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox