|
6.2.7 Return type of proceduresAlthough the SINGULAR language is a strongly typed programming
language, the type of the
return value of a procedure does not need to be specified. As a
consequence, the return type of a procedure may vary, i.e., may, for
example, depend on the input. However, the return value
of such a procedure may then only be assigned to a variable of type
proc type_return (int i) { if (i > 0) {return (i);} else {return (list(i));} } def t1 = type_return(1); def t2 = type_return(-1); typeof(t1); typeof(t2); → int → list Furthermore, it is mandatory to assign the return value of a procedure
to a variable of type proc def_return { ring r=0,(x,y),dp; poly p = x; keepring r; return (x); } def p = def_return(); // poly p = def_return(); would be WRONG!!! typeof(p); → poly On the other hand, more than one value can be returned by a single
proc tworeturn () { return (1,2); } int i,j = tworeturn(); |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |