Dear Forum,
Will Chen asked:
> Normally when you write a function F that returns a value, entering "F();"
> into the command line will display the full return value of the function.
> You can suppress this output calling the function using the
> double-semicolon "F();;" in the terminal.
>
> Is it possible to suppress this output from *within the function*?
There isn’t a particular built-in feature for this, but since the outpus is
produced by a call to `View`, you can achieve the same by installing a suitable
method for `ViewObj`:
DONTSHOW:="DONT_SHOW_STRING";
InstallOtherMethod(ViewObj,"Ignore particular",[IsObject],2*SUM_FLAGS,
function(x)
if IsIdenticalObj(DONTSHOW,x) then
Print("<I won't show you this>”); # delete the line to get no output
else
TryNextMethod();
fi;
end);
Now an object that is assigned to the global `DONTSHOW` will give the output <I
won't show you this>. For example:
gap> DONTSHOW:=5;;
gap> [1,2,3,4,5,6,7];
[ 1, 2, 3, 4, <I won't show you this>, 6, 7 ]
If you delete the `Print` statement, nothing will be shown. By assigning the
return value to the variable, this would let you do as you want.
Note that the test is `IsIdenticalObj`, not equality, to be guaranteed quick,
but it means that it only recognizes the one, particular, specified object.
Best,
Alexander Hulpke
_______________________________________________
Forum mailing list
[email protected]
https://mail.gap-system.org/mailman/listinfo/forum