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: 19 Nov 92 17:51:32 GMT From: dale.cts.com!jhb@nosc.mil (John Bollenbacher) Subject: re: [null arrays] Message-ID: List-Id: Thanks to all that responded to my initial mail on this thread. I have a followup question. Is there a more straightforward way to code the function (REMOVE) below, given the restriction on sliding in aggregate creation? package TEST is subtype T is NATURAL range 0 .. 10; type ARR is array (T range <>) of BOOLEAN; type A(N : T := 0) is record DATA : ARR(1..N); end record; function REMOVE(ELEMENT : BOOLEAN; FROM : A) return A; end TEST; package body TEST is function REMOVE(ELEMENT : BOOLEAN; FROM : A) return A is RESULT : ARR(1..FROM.N-1); begin for I in FROM.DATA'RANGE loop if FROM.DATA(I) = ELEMENT then RESULT := FROM.DATA(1..I-1) & FROM.DATA(I+1..FROM.N); return (FROM.N - 1, RESULT); end if; end loop; return FROM; end REMOVE; end TEST; -- ----------------------------------------------------------------------------- - John Bollenbacher jhb@dale.cts.com - - Titan Linkabit Corp. (619) 552-9963 - - 3033 Sience Park Rd. - - San Diego, Ca. 92121 - -----------------------------------------------------------------------------