TYPE a = a1 : INT a2 : STR a3 : INT-seq a4 : STR-set ; ENDTYPE =head1 teste do tplus ;aaaa <- < a(11,"asdasd asdasdasd",<1,2,3,4,5>, {itoa(x)}) | x <- inseg(30) > ; ;pp(aaaa); ;bbbb <- < tplus(z,a1,333)| z <- aaaa >; ;pp(bbbb); aaa <- a(12,"asdasd asdasdasd",<1,2,3,4,5>, {}) ; pp(aaa); aaa1 <- tplus(aaa,a2,"wwww"); pp(aaa1); aaa2 <- tplus(aaa1,a3,<3,2>); pp(aaa2); pp(aaa); ; pp(p3(aaa)); =cut fprod(x,y)= if(y is- -> if(ignlab(x) is- -> < y1(x1): fprod(xl,yl)>), y is-<> -> <> ); fadd(x,y)= if(x is-1:z -> <1,(y[1])(z)> , x is-2:z -> <2,(y[2])(z)> , x is-3:z -> <3,(y[3])(z)> , x is-4:z -> <4,(y[4])(z)> , x is-5:z -> <5,(y[5])(z)> , x is-6:z -> <6,(y[6])(z)> , x is-7:z -> <7,(y[7])(z)> , x is-8:z -> <8,(y[8])(z)> ); cotup(x,y)= if(x is-1:z -> (y[1])(z) , x is-2:z -> (y[2])(z) , x is-3:z -> (y[3])(z) , x is-4:z -> (y[4])(z) , x is-5:z -> (y[5])(z) , x is-6:z -> (y[6])(z) , x is-7:z -> (y[7])(z) , x is-8:z -> (y[8])(z) ); zip(x,y) = < | i <- inseg(length(x)) > ; tup(x,y) = < f(x) | f <- y>; ; testing: fg(x)= x.+ 3 ; d<- fprod(<2,3>,); e<- fprod(<2,3,4>,); aaa1 <- a(12,"asdasd asdasdasd",<1,2,3,4,5>, {}) ; f<- fprod(aaa1,); h <- fadd(<2,"batata">,); i <- cotup(<2,"batata">,); j <- tup(2,);