JSL 팁 : 다중 과제자주 간과되는 JMP 스크립팅 언어의 기능은 단일 할당 문에서 여러 변수에 값을 할당하는 기능입니다. 기본적인 예는 다음과 같습니다.
// x에 1을, y에 100을 대입합니다.
{x, y} = {1,100};
이 구문은 변수의 값이 이전 값에 의존 할 때 특히 유용합니다. 예를 들어, 두 변수의 값을 교환하는 쉽고 (그리고 빠른) 방법은 다음과 같습니다.
// x와 y를 바꾼다.
{x, y} = 평가 목록 ({y, x});
여기에서 다중 할당의 이점을 볼 수 있습니다. 그것 없이는 임시 변수를 추가하고 세 개의 할당 문을 사용해야합니다. 평가 목록 JMP가 목록을 평가할 때 목록 구성원을 평가하지 않기 때문에 기본적으로 필요합니다.
또 다른 사용은 두 개 이상의 상호 종속 변수에 대해 반복 계산을 수행하는 경우입니다. 유클리드 최대 공약수 알고리즘은 그러한 계산 중 하나입니다.
// 두 정수의 가장 큰 공약수
gcd = 함수 ({a, b},
while (b! = 0,
{a, b} = 평가 목록 ({b, Mod (a, b)});
);
에이
);
gcd (45, 60); // 15
a를 삽입하십시오. 쇼 (a, b) 알고리즘이 작동하는 방식을 지켜보기 위해 할당 후에
Mark Bailey는 다음과 같이 적었습니다. 나는이 이디엄을 자주 사용합니다. 마크 베일리 쓴 :
목록이 L 값으로 사용될 수 있다는 것을 알았 기 때문에 자주이 관용구를 사용합니다. 목록은 효율적이고 간결하면서도 읽기 쉬운 코드를 만듭니다. 다음은 나를위한 두 가지 일반적인 용도입니다.
// 평균의 신뢰 구간
샘플 N = 10;
샘플 = J (샘플 N, 1, 랜덤 표준 (10, 1));
yBar = 평균 (샘플);
sdY = 표준 편차 (표본);
{lo95 % CI, hi95 % CI} = 라운드 (
yBar + {-1,1} t Quantile (0.975, sampleN-1) sdY / Sqrt (sampleN),
2
);
쇼 (95 % CI, hi95 % CI);
// y 축 스케일
{yMin, yMax} = 라운드 (
yBar + {-4.5, 4.5} * (최대 (샘플) - 최소 (샘플)),
1
);
쇼 (yMin, yMax);