// 🧮 シンプルNyash計算機 - Everything is Box実証 print("🧮 === Simple Nyash Calculator ===") // デバッグ機能 DEBUG = new DebugBox() DEBUG.startTracking() // 🎯 式評価Box - シンプル版 box SimpleCalculator { init { name, operations } SimpleCalculator() { me.name = "Nyash Simple Calculator" me.operations = new ArrayBox() } // 加算 add(a, b) { result = a + b operation = "add(" + a + ", " + b + ") = " + result me.operations.push(operation) print("➕ " + operation) return result } // 減算 subtract(a, b) { result = a - b operation = "subtract(" + a + ", " + b + ") = " + result me.operations.push(operation) print("➖ " + operation) return result } // 乗算 multiply(a, b) { result = a * b operation = "multiply(" + a + ", " + b + ") = " + result me.operations.push(operation) print("✖️ " + operation) return result } // 複合演算 complex(a, b, c) { print("🔄 Complex operation: a + b * c where a=" + a + ", b=" + b + ", c=" + c) // 演算子優先度を考慮: b * c を先に計算 step1 = me.multiply(b, c) result = me.add(a, step1) print("📊 Final result: " + result) return result } // 履歴表示 showHistory() { print("📚 Operation History:") i = 0 loop(i < me.operations.length()) { print(" " + (i + 1) + ": " + me.operations.get(i)) i = i + 1 } } } // 🎯 数値ペアBox - ジェネリクス活用 box NumberPair { init { first, second } NumberPair(a, b) { me.first = a me.second = b } sum() { return me.first + me.second } product() { return me.first * me.second } toString() { return "Pair(" + me.first + ", " + me.second + ")" } } // 📦 汎用コンテナBox - ジェネリクス実装 box Container { init { value } Container(initialValue) { me.value = initialValue } setValue(newValue) { me.value = newValue } getValue() { return me.value } } // 🧮 高度計算Box box AdvancedCalculator { init { pairs, results } AdvancedCalculator() { me.pairs = new ArrayBox() me.results = new Container(0) } // ペア追加 addPair(a, b) { pair = new NumberPair(a, b) me.pairs.push(pair) DEBUG.trackBox(pair, "pair_" + me.pairs.length()) print("📦 Added pair: " + pair.toString()) return pair } // 全ペアの合計計算 calculateAllSums() { print("🔢 Calculating sums for all pairs:") totalSum = 0 i = 0 loop(i < me.pairs.length()) { pair = me.pairs.get(i) pairSum = pair.sum() totalSum = totalSum + pairSum print(" " + pair.toString() + " sum = " + pairSum) i = i + 1 } me.results.setValue(totalSum) print("🎯 Total sum: " + totalSum) return totalSum } // 全ペアの積計算 calculateAllProducts() { print("✖️ Calculating products for all pairs:") totalProduct = 1 i = 0 loop(i < me.pairs.length()) { pair = me.pairs.get(i) pairProduct = pair.product() totalProduct = totalProduct * pairProduct print(" " + pair.toString() + " product = " + pairProduct) i = i + 1 } print("🎯 Total product: " + totalProduct) return totalProduct } } // 🚀 メイン実行 print("🎯 Testing Simple Calculator...") calc = new SimpleCalculator() DEBUG.trackBox(calc, "main_calculator") // 基本演算テスト print("\n=== Basic Operations ===") calc.add(5, 3) calc.subtract(10, 4) calc.multiply(6, 7) // 複合演算テスト print("\n=== Complex Operations ===") calc.complex(2, 3, 4) // 2 + 3 * 4 = 14 calc.complex(1, 5, 2) // 1 + 5 * 2 = 11 // 履歴表示 print("\n=== History ===") calc.showHistory() // 高度計算器テスト print("\n=== Advanced Calculator ===") advCalc = new AdvancedCalculator() DEBUG.trackBox(advCalc, "advanced_calculator") // ペア追加 advCalc.addPair(3, 4) advCalc.addPair(5, 6) advCalc.addPair(2, 8) // 計算実行 advCalc.calculateAllSums() advCalc.calculateAllProducts() // デバッグ情報 print("\n📊 === Debug Report ===") print(DEBUG.memoryReport()) print("\n🎉 Simple Calculator completed!") print("Nyashの Everything is Box 哲学による計算機が完成にゃ!")