"n items()"가 더 강력해야 할까요?"n items()"가 있는 스크립트에서 문제가 발생하는 경우가 종종 있습니다. 그리고 다음 오류가 자주 표시됩니다. "N Items() 인수는 목록이어야 합니다."
한 스크립트에서는 내 데이터의 견고성으로 인해 항목에 입력하는 내용이 때때로 행렬, 숫자 또는 문자일 수 있습니다. 일명: 변수 = [5], 변수 = 5; 변수 = "05"; 변수 ={5}; 너무 자세히 설명하지는 않겠습니다. 이 경우 "n 항목"에 문자 값(일명 n 항목("05"))이 입력되면 1이 나오고 행렬이 있으면 정말 좋을 것입니다. 뱉어내다 등등.
긍정적인 점은 부적절한 데이터 항목이 입력되어도 JSL이 데이터를 소프트 변환하기 때문에 버그가 발생하지 않는다는 것입니다. 이렇게 하면 다양한 데이터에 대해 강력한 스크립트를 만드는 데 필요한 코드의 양이 크게 줄어듭니다. 단점은 게으른 프로그래밍으로 이어져 실수를 찾기 어렵게 만들 수 있다는 것입니다. 이로 인해 문제가 발생할 수 있습니다. 예를 들어 행렬을 공급하고 nrow가 아닌 ncol을 원했습니다. 또는 귀하의 문자열이 "05, 05"였으며 먼저 구문 분석했어야 했습니다.
커뮤니티는 어떻게 생각하나요? 'n개 항목'이 더 강력해지면 축복이 될까요, 저주가 될까요?
Re: "n items()"가 더 강력해야 합니까?이 스레드는 다소 오래되었지만 JMP 13 이상에서 궁극적으로 구현된 내용을 언급하고 싶습니다.
- NItems(matrix)는 이제 오류 대신 행렬의 요소 수(rows * cols)를 반환합니다.
- nitems("cat")는 여전히 오류를 반환합니다.
- niites([1 2 3] |/ [4 5 6]) == 6
Re: "n items()"가 더 강력해야 합니까?매트릭스에 대한 당신의 아이디어가 마음에 듭니다. nrows(matrix) * ncols(matrix) 확실히 nrows나 ncols를 반환하는 것보다 더 유용할 것 같습니다.
"a,b,c"에 대해 3을 반환하는 것은 값이 공백, 밑줄, 콜론(" " "_" ";") 등으로 구분될 수 있기 때문에 좋지 않은 반환이라고 주장합니다. 이는 실제로 nitems에 보내기 전에 word() 또는 regex()로 구문 분석하도록 프로그래머에게 맡겨야 합니다.
내 경우에는 문자열 목록을 기대했기 때문에 처음에는 1이 가장 적절할 것이라고 생각했습니다. 그러나 이전 명령문이 목록을 반환하지 않으면 변수를 문자열로 반환했는데, 이 경우에는 1을 원했습니다. 그러나 이제는 언급하셨듯이, 문자열의 길이를 반환하고 다른 용도로 사용된다면 nitem은 매우 유용할 수 있습니다.
Re: "n items()"가 더 강력해야 합니까?nItems(matrix)가 nrows(matrix) * ncols(matrix)를 반환한다면 더 유용할 것 같습니다.
1, 3 또는 5에 대한 사례를 만들 수 있기 때문에 nitems("a,b,c")에 대해 무엇을 기대하는지 잘 모르겠습니다.
Re: "n items()"가 더 강력해야 합니까?저는 JMP 지원팀이 이러한 포럼을 따르는 경향이 있다는 것을 알고 있으며, 저는 서두르지 않고 있으며 이 문제에 대해 방심하고 있기 때문에 제가 이 변경을 요청할 최적의 후보자가 될 수 있을지 의심스럽습니다.
나는 JavaScript에서 소프트 평등을 허용한다는 것을 알고 있습니다. 예를 들어 5 == "5"는 true를 반환하고 5 === "5"로 표시된 하드 e 특성은 false가 됩니다. 소프트 평등은 종종 이상한 동작으로 이어질 수 있으며 많은 프로그래머가 눈살을 찌푸립니다. 많은 사람들이 항상 하드 등식을 사용하는 것에 대한 편견을 가지고 있지만, 소프트 등식을 사용하면 코드를 견고하게 만드는 데 실제로 도움이 될 수 있으며 프로그래머가 자신이 무엇을 하고 있는지 안다면 생명을 구할 수 있습니다.
JSL은 다른 언어이므로 대부분의 스크립트 작성자는 프로그래밍 배경 지식이 없는 것 같습니다. 그래서 강력한 nitem을 허용하는 것은 언어에 해로울 수 있지만 동시에 나는 그것을 잘 활용할 수 있을 것입니다.
Re: "n items()"가 더 강력해야 합니까?나는 당신의 제안이 좋은 제안이라고 생각합니다. 그리고 커뮤니티 전체가 어떻게 생각하든 상관없이 제안은 JMP 지원 그룹에 전달되어야 합니다. 오직 그들만이 변화에 영향을 미칠 수 있습니다.
그리고 귀하의 토론을 너무 빨리 읽고 커뮤니티 의견 요청을 누락한 점에 대해 사과드립니다.
Re: "n items()"가 더 강력해야 합니까?그것은 질문에 대답하지 않습니다.
Re: "n items()"가 더 강력해야 합니까?"Is List" 기능을 사용하면 값이 목록인지 확인할 수 있습니다. 따라서 다음은 스케일러, 목록 및 행렬에 적용됩니다.
x= 스케일러, 행렬 또는 목록
If(목록(x)인 경우
개수=1
)