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

  1. !       ><HopeProgs$Dir>.SimpleTupl        !
  2. !                                          !
  3. !------------------------------------------!
  4. !                                          !
  5. !  This is a collection of simple Hope     !
  6. !  functions over tuples.                  !
  7. !                                          !
  8. !------------------------------------------!
  9.  
  10.  
  11.  
  12.  
  13. dec AddDigit : num # num  -> num;
  14. --- AddDigit(Number,Digit)  <=  (Number * 10) + Digit;
  15.  
  16.  
  17.  
  18. dec Split : num -> num # num;
  19. --- Split Number
  20.     <=  ( (Number div 10) , (Number mod 10) );
  21.  
  22.  
  23. dec join : num # num -> num;
  24. --- join (first,second)
  25.     <=  if second=0
  26.           then first
  27.           else AddDigit( join(first,x) ,y )  where (x,y) == Split(second);
  28.  
  29.  
  30.  
  31.  
  32. !    O(n^2) reverse    !
  33.  
  34. dec ReverseDigits : num -> num;
  35. --- ReverseDigits n
  36.     <=  if n < 10
  37.           then n
  38.           else join( LastDigit , ReverseDigits(FirstDigits))
  39.                where (FirstDigits,LastDigit) == Split n;
  40.  
  41.  
  42.