Ralf Hemmecke wrote:
>
> > tex(coerce(mersenne)@OutputForm)
>
> That's not interesting.
>
> > But if you want the exact output that you got above, then
> > ATM there are no clean way. Namely printing of functions is a
> > hack in the interpreter, avoiding normal way via OutputForm...
>
> I wouldn't care to do a similar hack in my testsuite as long as I get
> out what is printed in a session. If the interpreter changes some day, I
> can change the tests accordingly, but I want to test what is shown in a
> session by FriCAS means and not via grepping the session output by an
> external program.
>
> I have the feeling that outputTran is involved, but cannot exactly find
> where a function would be transformed into the respective SExpression
> (or rather OutputForm). In fact, OutputForm is what I need, not
> List(String).
>
> (5) -> outputTran(mersenne)$Lisp
>
> (5) (CONCATB ($elt Lisp outputTran) #1 == (+ (^ 2 #1) (- 1)))
> Type: SExpression
>
> I have similar problems for the cases below.
I have now a patch which modifies coercion to OutputForm so that
just 'tex(mersenne::OutputForm)' works. As a nice byproducts
it avoids some of abuses of 'OutputForm'.
> I have similar problems for the cases below. In particular, printing of
> types.
>
> Ralf
>
> (6) -> formatExpression$TexFormat
>
> (6) theMap(TEX;formatExpression;OfIL;29,655)
> Type: ((OutputForm,Integer) ->
> List(String))
> (7) -> OF==>OutputForm
> Type:
> Void
> (8) -> eq_fn: (OF, OF) -> OF := =$OF
>
> (8) theMap(OUTFORM;=;3$;5,655)
> Type: ((OutputForm,OutputForm) ->
> OutputForm)
What is the problem above? AFAICS this is just goes via regular
OutputForm.
> (9) -> Integer
>
> (9) Integer
> Type:
> Type
> (10) -> UnivariatePolynomial('x, Fraction Integer)
>
> (10) UnivariatePolynomial(x,Fraction(Integer))
> Type:
> Type
Types also have special routine to print them. More precisely,
there is ad hoc function 'outputDomainConstructor' which produces
corresponding output form. In principle this function could be
used to coerce types to 'OutputForm'. However, AFAICS 'Category'
has no way to add operations, so there is no place to hook it...
> (11) -> addx x == ((y: Integer): Integer +-> x + y)
>
> Type:
> Void
> (12) -> addx
>
> (12) addx x == y +-> x + y
> Type:
> FunctionCalled(addx)
With the patch I mentioned this goes via 'OutputForm'.
--
Waldek Hebisch
[email protected]
--
You received this message because you are subscribed to the Google Groups
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.