From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.5-pre1 Date: 16 Jun 93 20:28:00 GMT From: cis.ohio-state.edu!math.ohio-state.edu!howland.reston.ans.net!usc!elroy.j pl.nasa.gov!swrinde!menudo.uh.edu!cl2.cl.uh.edu!swen09d2@ucbvax.Berkeley.EDU ( 440722148 DUGAN, TIMOTHY R) Subject: Re: Type declarations in a subprogram Message-ID: <16JUN199314282536@cl2.cl.uh.edu> List-Id: In article <1993Jun16.164301@lglsun.epfl.ch>, nebbe@lglsun.epfl.ch (Robb Nebbe) writes... >Why would anyone want to declare a type in a subprogram? First of all, the distinction between a "subprogram" and a "main program" is somewhat artificial. If there is a reason to do it in a main, why wouldn't there be a reason in a sub? Here's one of a possible infinite numbe of examples: function Recognizer(Input : String) return Boolean is type State_Type is (State_1, State_2, State_3, ... ); Current_State : State_Type := State_1; Return_Value : Boolean := False; begin for Index in Input'range loop case Current_State is when State_1 => . . . Current_State := . . . when . . . . . . Return_Value := True; . . . end case; exit when Current_State = State_N; end loop; end Recognizer;