에 관한 IBM 메인 프레임의 APL2의 흥미로운 버그이 환경에서 우리는 소비 된 서비스 단위의 수효를 측정합니다.‡
0 100 100 100 100 100 1000⊥⎕TS ⍝ this statement consumes around 150 SUs
0 100 100 100 100 100 1000.0⊥⎕TS ⍝ this statement consumes around 5 SUs
여기 무슨 일이야 : 나는 버그를 설명하기 위해 밀리 초 현재 dateTime으로 변환거야? 음, 왼쪽 인자의 임의의 항목에 .0
을 붙이면 통역사에게 플로트 모드로 들어가게됩니다. 이를 사용하지 않으면 먼저 정수로 작업을 처리하고 작동하지 않는 것을 확인한 다음 부동 모드로 다시 시도합니다.
같은 트릭을 오른쪽 인수에 사용하거나 0.0
을 추가하거나 을 곱하여 사용할 수 있습니다.
https://stackoverflow.blog/2011/07/its-ok-to-ask-and-answer-your-own-questions/ – mappo
저는 컴파일러가 특별히 최적화되지 않았다고 생각합니다. 교활한 돈 벌기 트릭을 IBM에서 ...-) –
@mappo QA 형식에 맞는 대답 부분 ("글쎄, 붙임으로써 .0 ...")을 답으로 생각해야합니다. –