home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / historic / v941.tgz / icon.v941src.tar / icon.v941src / ipl / packs / euler / t6.eul < prev    next >
Text File  |  2001-06-06  |  959b  |  47 lines

  1. begin new for; new sum; new equal;
  2.     new i; new array; new x;
  3.     new a1; new a2;
  4. for <- 'formal v; formal n; formal s;
  5.      begin label k;
  6.      v <- 1;
  7.   k: if v <= n then
  8.           begin s;
  9.           v <- v + 1;
  10.           goto k
  11.           end
  12.      else undef
  13.      end';
  14.  
  15. x<-(1,2,3,4,5);
  16. sum <- 0;
  17. for(@i,length x,'sum<-sum+x[i]') ;
  18. out sum;
  19.  
  20. equal<-'formal x; formal y;
  21.      begin new t; new i; label k;
  22.      t <- false;
  23.      if isli x and isli y and length x = length y then
  24.           begin
  25.           for(@i,length x,
  26.                'if ~ equal(x[i],y[i]) then goto k else undef');
  27.           t <- true
  28.           end
  29.      else t <- isn x and isn y and x=y;
  30.   k: t
  31.      end';
  32.  
  33. out equal(1,1);
  34.  
  35. array<-'formal l; formal x;
  36.      begin new t; new a; new b; new i;
  37.      b <- l; t <- list b[1];
  38.      a <- 'if length b>1 then array(tail b,x) else x';
  39.      for(@i,b[1],'t[i]<-a');
  40.      t
  41.      end';
  42. a1 <- array((2,3,4),1);
  43. a2 <- array((2,3,4),1);
  44. out equal(a1,a2)
  45.  
  46. end
  47.