一年前,我使用Alphabeta prunning算法編寫了國際象棋AI。這在C++中是比較直接的。我在做這件事時考慮的一個主要問題是使我的代碼高效。我通過使用我稱之爲「遊戲」的數據類型來完成這項工作,該數據類型是通過算法創建的搜索樹傳遞的。爲了提高效率,我並沒有複製「遊戲」數據類型,而是改變了它,同時保留了將其返回到先前狀態所需的底層信息。函數式編程中的國際象棋編程
最近我一直在閱讀關於函數式編程和純粹使用函數的概念,這些函數不會改變它們傳遞給我的參數的狀態。我想知道如何使用函數式編程的範例,同時還要考慮到程序的效率。
在OOP中,解決方案似乎非常直截了當(這是我實現的),而在函數編程中似乎複製數據類型是底層的,這會降低效率。沒有這種效率損失,是否可以使用函數式編程?