Sto cercando di ottenere MatPad's MuPad bello e conveniente come MathCad.Pretty MuPad: output di assegnazione, espressione e risultato in una riga - Come creare quella funzione?
assumere due assegnazioni di variabili:
x_a:=2*unit::mm;
y_b:=5*unit::mm;
e voglio un prettyfied (formattato con Tex) output come
z = x_a + y_b = 7 mm
ho già riuscito a farlo utilizzando output::mathText(...)
:
output::mathText(hold(z)," = " , (z:=hold(x_a+y_b)) , " = " , z)
che sembra come desiderato:
Ma questo non è veramente conveniente e non leggibile. Così sto cercando di avvolgere in una o una funzione macro:
evalPrint(z,x_a+y_b)
Come posso fare questo?
Quello che ho cercato:
ho scritto una procedura come segue:
evalPrint :=
proc(x,y) begin
output::mathText(hold(x)," = " , (x:=hold(y)) , " = " , x)
end_proc:
ma ottengo solo
Che cosa mi manca?
Per quanto riguarda horchler's answer: la sua prima soluzione non in qualche modo funziona, mentre il secondo fa:
procedure:
evalPrintVal := proc(x,y) option hold;
begin
output::mathText(x, " = ", evalassign(x,y));
end_proc:
evalPrintEq := proc(x,y) option hold;
begin
output::mathText(x, " = ", evalassign(x,y), " = ", context(y));
end_proc:
evalPrintEq2 := proc(x,y) option hold;
begin
output::mathText(x, " = ", y, " = ", evalassign(x,y));
end_proc:
chiamata:
evalPrintVal(U_1,15000*unit::V);
evalPrintEq(E_h, U_1*1.05);
evalPrintEq2(E_h, U_1*1.05);
uscita:
Questo sembra già molto promettente, lo proverò il prima possibile. E grazie per i link interessanti, ho difficoltà a trovare queste informazioni per Mupad. – thewaywewalk
Funziona bene. L'avrei tenuto aperto un po 'più a lungo, quindi la tua risposta esaustiva può attirare ancora più attenzione? E come sembri un esperto di Mupad, forse sei interessato ad aiutarmi con la mia [domanda di follow-up] (http://stackoverflow.com/questions/31786164/define-general-relative-search-path-for -custom-MuPAD-procedure). – thewaywewalk
in realtà la tua prima soluzione non funziona (vedi la mia modifica), ma la seconda lo fa. Non vedo il motivo per cui il primo funziona nel tuo caso e nel mio no. – thewaywewalk