home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / programming / a139_1 / !Hope_Programs_SimpleLsts < prev    next >
Encoding:
Text File  |  1990-09-23  |  974 b   |  48 lines

  1. !       ><HopeProgs$Dir>.SimpleLsts        !
  2. !                                          !
  3. !------------------------------------------!
  4. !                                          !
  5. !  This is a collection of simple Hope     !
  6. !  functions over lists.                   !
  7. !                                          !
  8. !------------------------------------------!
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15. dec numlist : num -> list ( num ) ;
  16. --- numlist ( 1 ) 
  17.     <= [ 1 ] ;
  18. --- numlist ( n ) 
  19.     <= ( n :: numlist ( ( n - 1 ) ) ) ;
  20.  
  21.  
  22.  
  23.  
  24. dec sumlist : list ( num ) -> num ;
  25. --- sumlist ( nil ) 
  26.     <= 0 ;
  27. --- sumlist ( ( h :: t ) ) 
  28.     <= ( h + sumlist ( t ) ) ;
  29.  
  30.  
  31.  
  32.  
  33.  
  34. dec append : list(alpha) # list(alpha) -> list(alpha);
  35. --- append(nil , Second)
  36.     <= Second;
  37. --- append( (HeadFirst::TailFirst) , Second)
  38.     <= HeadFirst :: append(TailFirst , Second);
  39.  
  40.  
  41.  
  42. dec ReverseList : list(alpha) -> list(alpha);
  43. --- ReverseList nil
  44.     <= nil;
  45. --- ReverseList(Head :: Tail)
  46.     <= append(ReverseList(Tail) , [Head]);
  47.  
  48.