Search code examples
gap-system

How do you print to a text file in GAP without linebreaks?


Minimum working example:

x:=Indeterminate(Rationals,"x");
f:=Sum([1..1000],i->x^i);
PrintTo("~/temp.txt",f);

It prints to temp.txt the following:

x^1000+x^999+x^998+x^997+x^996+x^995+x^994+x^993+x^992+x^991+x^990+x^989+x^988\
+x^987+x^986+x^985+x^984+x^983+x^982+x^981+x^980+x^979+x^978+x^977+x^976+x^975\
+x^974+x^973+x^972+x^971+x^970+x^969+x^968+x^967+x^966+x^965+x^964+x^963+x^962\
+x^961+x^960+x^959+x^958+x^957+x^956+x^955+x^954+x^953+x^952+x^951+x^950+x^949\

[snip]

How can I instead get it to print it on a single line in the text file?


Solution

  • That's a common need, and the solution is called SetPrintFormattingStatus. See its documentation online or just type ?SetPrintFormattingStatus in the GAP prompt to see the documentation.

    Note that you will have to use streams in this case, it does not work with text files straightforwardly. OutputTextFile (documented just after SetPrintFormattingStatus) is what you need to use.

    In the example above, use

    x:=Indeterminate(Rationals,"x");
    f:=Sum([1..1000],i->x^i);
    output := OutputTextFile( "poly", false );;
    SetPrintFormattingStatus(output, false);
    PrintTo(output,f);