私はJSと呼ばれる組み込み言語でコーディングしています。
3つの関数を任意の順序で呼び出せるようにしたい。(ABC、ACB、BAC、BCA、CBA、CAB。)
トリック?この言語にはユーザー定義関数はありません。
条件付きおよびループ構造があります。
私には3つの選択肢があると思います。
- 大量のコードを複製します。
- プリプロセッサを記述します(これにより、重複するすべてのコードが作成されます)。
- 配列を使用して、ループの各パスで呼び出される機能を制御し、3回の反復でループを実行します。
私は#1が嫌いです。重複したコードは厄介です。失敗せずに何かを変更するにはどうすればよいですか?
#2は大丈夫だと思います。少なくとも、ソースに重複したコードはありません。しかし、私の出力コードは私がデバッグするものであり、それから分岐したいかどうか疑問に思います。プラス面として、私は言語に砂糖の束を追加することができました。
私の最善の策は#3だと思います。
他のアイデアはありますか?後藤はありません。機能はありません。既存のプリプロセッサはありません。
#3の面白いところは、それが本質的に悪名高い/スイッチの悪夢であるということです。