Head는 주장을 평가합니까?JSL을 사용하여 효율적이고 견고한 애플리케이션 개발(EU 2018 415)에서 해당 주장을 평가하는 함수와 그렇지 않은 함수가 있다는 것을 배웠습니다.

헤드에 대해 궁금했어요. 여기서 모든 것이 논리처럼 보입니다 ...
f= Expr(x=2);
Substitute(NameExpr(f),Expr(x), Expr(y));
Head(f);
Head는 Substitute와는 다릅니다. 함수 이름을 인수로 직접 사용할 수 있으며 Head는 표현식의 헤드를 반환합니다.
"인수를 평가하지 않는" 다른 함수를 확인한 후:
Expr(x=2); // x=2
Name Expr(x=2); // x=2
결과를 확인해 보자
Head(x=2)
이는 "2"입니다. 즉, 인수를 평가한 후의 결과?!?! 왜 할당() 이 아닌가?
자동화 및 스크립팅Re: Head는 자신의 주장을 평가합니까?
Names Default To Here(1);
{a, b, c} = {1, 2, 3};
Head(Expr(Sum(a, b, c)));
HeadExpr(Sum(a, b, c)); // Deprecated
Head(Sum(a, b, c));
https://www.jmp.com/support/help/en/17.2/#page/jmp/advanced-expressions-macros-and-lists.shtml#

Re: Head는 자신의 주장을 평가합니까?아, 좋습니다. 스크립팅 인덱스가 매우 명확합니다.
따라서 요즘의 행동은 목록에 표시된 것과 다릅니다. 그 뒤에 숨겨진 비밀은 없습니다.
일반적으로 JSL 편집기에서 함수가 실행되기 전에 평가되는 인수와 평가되지 않는 인수를 구별하기 위해 일부 강조 표시를 사용하면 스크립팅이 훨씬 쉬워질 수 있습니다.
JSL 편집기의 고급 구문 강조 표시
Re: Head는 자신의 주장을 평가합니까?Narg 와 동일 - 인수가 평가됩니다( Name Expr() 와 마찬가지로 1x).:(
(스크립팅 가이드에서 수정)
aExpr = {a+b,c,d,e+f+g};<BR />
Show(NArg(aExpr)); //4
Show(NArg(Arg(aExpr,4))); // 3
Show(NArg(Add(1,2,3,4))); // 0
Show(NArg(Expr(Add(1,2,3,4)))); //4
Show(Head(aExpr)); //List()
Show(Head(Arg(aExpr,4))); // Add()
Show(Head(Add(1,2,3,4))); // 10
Show(Head(Expr(Add(1,2,3,4)))); //AddRe: Head는 자신의 주장을 평가합니까?이 Name Expr 과 유사한 동작은 다음과 같은 경우에 특히 유용합니다.
- 열로(...)
- 변수( col )를 통한 열 참조
논쟁으로.
dt = Open("$SAMPLE_DATA/Big Class.jmp");
col = Name Expr(As Column("age"));
Head(As Column("age"));
Head(col);
dt << Recode Column(AsColumn("age"),{1},Target Column(AsColumn("age")));
dt << Recode Column(col,{1},Target Column(col));
dt << Graph Builder(Variables( X( As Column ("age") ) ),Elements( Points( X ) ));
dt << Graph Builder(Variables( X( col) ),Elements( Points( X ) ));
반면에 As Column()을 통해 열을 입력하면 작동하지 않는 함수는 다음과 같습니다.
dt = Open("$SAMPLE_DATA/Big Class.jmp");
col = Name Expr(As Column("age"));
Distribution(Column(As Column("age")));쉬운 해결책: 이름 Expr을 사용하여 As Column으로 래핑:
Distribution(Column(Name Expr(As Column("age")))); ... 또는 해당되는 경우 As 열 대신 Column()을 사용합니다.
Distribution(Column(Column("age")));
두 경우를 구별하려면 print(1); 논쟁의 시작 부분에:
dt << Graph Builder(Variables( X( Print(1);As Column ("age") ) ),Elements( Points( X ) )); // fails
Distribution(Column(Print(1);Column("age"))); // worksRe: Head가 자신의 주장을 평가하는가?
@hogi 님이 쓰셨습니다:
인수가 평가됩니다( Name Expr()과 같이 1회)
죄송합니다:
Name Expr() 와 같이
머리():

의미: " 표현식 Arg 는 다음과 같습니다.
1) 표현을 담고 있는 이름 - Head는 표현을 사용합니다.
2) 표현식 - Head가 이를 평가 하고 결과를 입력으로 사용합니다.
3) 또는 Expr()에서 인용된 리터럴 표현식 - Head는 리터럴 표현식을 사용합니다.
이름 Expr():
"the expressionArg can be
1) 표현식을 포함하는 이름 - Name Expr은 표현식을 사용합니다.
2) 표현식 - Name Expr은 표현식을 사용합니다.".
Name Expr(1+2); // 1 + 2
Head(1+2); // 3
Re: Head가 자신의 주장을 평가하는가?Head()와 같은 다른 함수[아이디=7]
- 머리()
- NArg()
- 인수()
- 비어있습니다()
- 인쇄()
- 보여주다()
- 쓰다()
Re: Head가 자신의 주장을 평가하는가?인수를 평가하는 함수:
[아이디=2]
거의 모든 기능 ...
대부분의 "is ..." 함수:
- Expr()인가
- Matrix() 인가
- List()인가
- 숫자인가()
- 네임스페이스()
- 네임스페이스 존재()
알아두면 좋은 정보:
1번째 것보다 큰 인수를 평가하세요:
- Into()로 대체
- 삽입()
- 에서 제거()
- 양수인()
- 인수()
Re: Head가 자신의 주장을 평가하는가?Name Expr() 처럼 동작하는 함수:
[아이디=3]
"그만큼 표현식Arg 될 수 있습니다
1) 표현식을 포함하는 이름 - Name Expr은 표현식을 사용합니다.
2) 표현 - 그리고 Name Expr은 다음 표현식을 사용합니다.".
- Name Expr()
- NArg()
- Expr() 추출 [두 인수 모두] *)
*) 정말 멋지네요!
x= Expr(Print(1));
Extract Expr(x, x) // Print(1)
Re: Head가 자신의 주장을 평가하는가?Head()와 같은 다른 함수
[아이디=7]
"그만큼 표현식Arg 될 수 있습니다
1) 표현을 담고 있는 이름 - Head는 표현을 사용합니다.
2) 표현 - 그리고 책임자가 평가할 것입니다 그것을 사용하고 결과를 입력으로 사용합니다
3) 또는 Expr()에서 인용된 리터럴 표현식 - Head는 리터럴 표현식을 사용합니다.
- 머리()
- NArg()
- 인수()
- 비어있습니다()
- 인쇄()
- 보여주다()
- 쓰다()
Re: Head가 자신의 주장을 평가하는가?#표현식검사기
Re: Head가 주장을 평가하나요?또 다른 질문:
Type은 왜 인수를 평가하는가?
Type(Char(1)) // String !!