@Craige_Hales의 훌륭한 답변을 확장하려고 합니다 . 스크립트 결합을 통해 변수 이름 대신 변수/표현식의 내용을 새 스크립트에 삽입했지만 구문을 알아내지 못했습니다. 작동하도록 하는 아이디어가 있습니까?
저는 JMP 18.1.2를 사용하고 있습니다
Names Default To Here( 1 );
dt = New Table( "My Table" );
e1 = Expr(
Print( "Run some code." )
);
e2 = Expr(
Print( "Run some other code." )
);
e3 = Expr(
Parse( Eval Insert( "\[
^e1^;
^e2^;
]\" ) )
);
// These work.
Eval( Eval Expr( dt << New Script( "Test 1", Expr( Name Expr( e1 ) ) ) ) );
Eval( Eval Expr( dt << New Script( "Test 2", Expr( Name Expr( e2 ) ) ) ) );
// This does not work.
Eval( Eval Expr( dt << New Script( "Test 3", Expr( Name Expr( e3 ) ) ) ) );
e3를 인쇄하여 내용을 확인하세요
Name Expr(e3) = Parse(Eval Insert("
^e1^;
^e2^;
"));
이것은 아마도 당신이 찾고 있는 것을 할 수 있습니다
Names Default To Here(1);
dt = New Table("My Table");
e1 = Expr(Print("Run some code."));
e2 = Expr(
Print("Run some other code.")
);
e3 = Parse(Eval Insert("\[
^Name Expr(e1)^;
^Name Expr(e2)^;
]\"));
Eval(Eval Expr(dt << New Script("Test 3", Expr(Name Expr(e3)))));
나는 일반적으로 Parse를 사용하지 않을 것입니다. 왜냐하면 그것은 디버깅하기 힘든 악몽이기 때문입니다.
Names Default To Here(1);
dt = New Table("My Table");
e1 = Expr(Print("Run some code."));
e2 = Expr(
Print("Run some other code.")
);
e3 = EvalExpr(
Expr(Name Expr(e1));
Expr(Name Expr(e2));
);
Eval(Eval Expr(dt << New Script("Test 3", Expr(Name Expr(e3)))));