수식에서 중첩 된 사용자 지정 함수 사용 가능안녕 모두,
온도와 압력을 기반으로 복잡한 계산을하기 위해 추가 기능을 만들려고합니다.
내 접근 방식은 스크립트를 만든 다음 이것을 보이지 않는 추가 기능에 연결하는 것입니다. 그런 다음 plugin의 수식을 global : myfunc ()를 통해 수식에 사용하십시오.
스크립트에 단일 함수가있는 경우이 방법이 효과적입니다 ( 주제를 보아라. ).
그러나 하나의 jsl 스크립트에 두 개의 중첩 함수가있는 경우 이 접근 방식은 더 이상 작동하지 않습니다.
다음은 jSL 스크립트입니다.
myfun1 = Function({x},
a = x+10;
Return(a);
);
myfun2 = Function({x},
b = myfun1(x)+10;
Return(b);
);그래서 내가 실제로하고 싶은 것은 수식 편집기에서 myfun2를 다음과 같이 호출하는 것입니다.

하지만 다음과 같은 오류가 발생합니다 :

이것을 할 수있는 방법이 있습니까?
다시 : 수식에서 사용할 수있는 중첩 된 사용자 지정 함수 만들기팁 주셔서 감사합니다, 그것은 지금 매력처럼 작동합니다! 
나는 그것을 생각했다 :
<SPAN class="token function">names default to here</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
이 경우에는 충분할 정도로 goign했다. 이제 왜 네임 스페이스를 명확하게 지정해야하는지 이해합니다.
다시 : 수식에서 사용할 수있는 중첩 된 사용자 지정 함수 만들기필자가 제안한 JMP 14를 사용하지 않는다면 별도의 이름 공간에 모든 함수를 작성하는 것이 좋습니다. 그러면 모든 데이터 테이블과 스크립트에서 기능을 사용할 수 있습니다. 또한 실제로 추가 기능을 구성하여 jmpstartup.jsl 스크립트를 수정하여 네임 스페이스를 만들고 모든 기능을 채울 수 있으므로 누군가 JMP를 시작할 때마다 자동으로 사용할 수있는 기능을 만들 수 있습니다.
names default to here(1);
GlobalFunction=new namespace("GlobalFunction");
GlobalFunction:ShowValue = Function({x},show(x));
zippy=10;
GlobalFunction:ShowValue(zippy)다시 : 수식에서 사용할 수있는 중첩 된 사용자 지정 함수 만들기안녕하세요, 답장을 보내 주셔서 감사합니다.
문제는 첨부 파일의 예제 스크립트보다 약간 복잡합니다. 내가 실제로 만들고 싶은 스크립트는 30 개 이상의 기능으로 구성되어 있으며 그 중 일부는 여러 다른 기능을 호출합니다.
이 스크립트는 JMP 추가 기능을 통해 다른 사람들이 사용할 수 있도록 만들어졌습니다. 따라서 추가 기능이 설치된 경우 언제든지 테이블에서 함수에 액세스 할 수 있습니다.
기본적으로 파이썬 / C ++ 클래스에 상응하는 함수를 호출하고 싶습니다.
내가 알고 싶은 것은 칼럼 수식에서 어떻게 작동시키는 것입니까?
스크립트 내에서 myfun2를 호출하면 오류가 발생하지 않습니다. 그러나 나는 그것을에서 실행할 때 가지고있다. 열 수식
또한 JMP14에서 공식적으로 자신의 costum 수식을 지원한다는 것을 알고 있습니다 ( 링크 ).
나는 이것이 가능해야한다고 확신한다. 그것은 jsl / JMP에서 올바르게 수행하는 방법에 관한 문제 일 뿐이다. 이것이 바로 나의 질문이다.
다시 : 수식에서 사용할 수있는 중첩 된 사용자 지정 함수 만들기JMP를 닫은 다음 다시 열면 해당 함수 이름이 정의되지 않으므로 해당 열 수식이 깨지기 때문에 열 수식에서 사용자 지정 사용자 정의 함수를 사용하면 매우 신중할 것입니다. 어쩌면 그건 여기서 걱정거리가 아니 겠지만, 나는 그 점을 지적 할 것이라고 생각했습니다.
이것에 접근하는 데는 몇 가지 방법이 있습니다. 예를 들어 표현식을 사용하여 접근 할 수 있습니다. 또는 myfun1과 myfun2의 정의를 열 수식에 넣을 수 있습니다.
이 방정식을 붙여 넣기 만하면됩니다.
myfun1 = Function( {x},
a = x + 10;
Return( a );
);
myfun2 = Function( {x},
b = myfun1( x ) + 10;
Return( b );
);
myfun2( 1 );