この環境では、消費されたサービスユニットの数の効率を測定します。 私はバグを説明するためにミリ秒に現在のDateTimeに変換されます: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
ここで何が起こっていますか?さて、左引数の中のいずれかに.0
を付けることによって、私たちは通訳者にフロートモードに入るように指示します。それがなければ、最初に整数で操作を処理しようとしますが、動作していないことに気づき、フロートモードで再試行します。
右の引数で、または0.0
を追加することによって、またはを掛けることによって、同じトリックを使用できます。
https://stackoverflow.blog/2011/07/its-ok-to-ask-and-answer-your-questions/ – mappo
私はコンパイラが特に最適化されていないと推測しています - これがIBMから巧妙な金儲けのテクニック:-) –
@mappo QA形式に合わせるためには、回答部分(「.0〜を付けることによって...」)を答えに入れるべきだと思います。 –