Expresión frente a funcionesHe estado luchando para entender las diferencias. Me parece, al menos en la superficie, que logran lo mismo, pero al ver cómo puedes elegir, hay una diferencia en alguna parte. Si a ustedes, amigos, no les importaría darme la explicación tonta con Maye, uno o dos ejemplos, se los agradecería mucho.
D
Re: Expresión vs. FuncionesGracias Marcos,
Empecé un nuevo tema basado en la información que pudiste proporcionar. Las funciones son definitivamente lo que necesitaba entender, ya que reduce significativamente las líneas de código en mi secuencia de comandos de extracción de datos.
Aqui esta el link https://community.jmp.com/t5/Discussions/How-to-loop-using-a-function/mp/74841
Re: Expresión vs. FuncionesAdemás de usar la naturaleza dinámica de las expresiones, veo las expresiones como otra forma de hacer una subrutina. Podría usar una función o una expresión como subrutina. Prefiero una expresión cuando quiero retrasar la evaluación, no necesito parámetros y no necesito que se devuelva un resultado. Prefiero una función de usuario cuando necesito parámetros o un resultado devuelto.
Re: Expresión vs. FuncionesGracias por la información. Tengo más de 6 scripts include() que no son más que expresiones. Voy a probar la función ahora..
Re: Expresión vs. FuncionesMi opinión: las funciones son para código que será recurrente.Las expresiones son para insertar código en otro código.
He aquí un ejemplo simplificado:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
onewayFunc = function({dt,Yaxis, Xaxis}, {Default Local},
plot = dt << Oneway(
Y( eval(Yaxis) ),
X( eval(Xaxis) )
);
return(plot);
);
Yaxis = expr({Column("height"), Column("weight")});
Xaxis = expr(Column("sex"));
onewayFunc(dt,Yaxis,Xaxis);
Este código se podría realizar sin expresiones, pero utilizándolo como ejemplo.En general, diría que siempre use funciones, hasta que encuentre un caso extremo en el que una expresión haga el trabajo.
Las expresiones también tienen varias funciones de ayuda útiles que las hacen útiles para la aritmética y el álgebra:
Names Default To Here( 1 );
Simplify Expr( Expr( 2 * 3 * a + b * (a + 3 - c) - a * b ) );
//6 * a + 3 * b + -1 * b * c