だから、私は疑問に思っています/尋ねています。APL で If ステートメントを実行することは可能ですか? もしそうなら、どのように?
これが私のコードです
'Please enter a number to count to: '
number ←⎕
⍳number
ユーザーが100を超える数値を入力すると、「高すぎる」と出力されて終了するifステートメントを取得するにはどうすればよいですか。または、100以下の場合は続行しますか?
ありがとう!
だから、私は疑問に思っています/尋ねています。APL で If ステートメントを実行することは可能ですか? もしそうなら、どのように?
これが私のコードです
'Please enter a number to count to: '
number ←⎕
⍳number
ユーザーが100を超える数値を入力すると、「高すぎる」と出力されて終了するifステートメントを取得するにはどうすればよいですか。または、100以下の場合は続行しますか?
ありがとう!
Dyalog APL には、guard と呼ばれるこのきちんとした小さなものがあります。
これらは dfns で使用でき、特定の条件が一致したときにコードを評価できます。
func ← {⍵>100 : 'too high' ⋄ 1 : 'number is ok'}
APL2 でエラー処理*を行う「古典的な」方法は、⎕ES または ⎕EA を使用することです。コードは次のようになります。
⎕ES(NUMBER>100)/'Too high'
⍳NUMBER
ここで何が起こるかというと、IF括弧が true と評価された場合、THENは⎕ES
実行を停止し、引用符で囲まれた文字列をエコーします。
THEN を終了させたくない場合は、⎕EA
APL のドキュメントを参照してください。
私は GreenOnBlack 環境で APL2 を使用しているため、Dyalog のようなより現代的な方言でこれを行うより適切な方法がある可能性が高いことに注意してください。
*エラー処理ではなく条件について質問していることは知っていますが、実行を終了する例であるため、エラー処理である可能性があります。
これと MBaas の提案には決定的な違いがあります。彼のソリューションは、値を返す可能性のある現在の関数を正常に終了します。⎕ES
またはを使用して、すべての実行⎕EA
を終了します。