4
我正在爲簡單的棋盤遊戲編寫Haskell解算器。我有這個功能:最小或足夠小
bestMove :: Board -> (Int,Int)
bestMove brd = minimumBy (comparing $ length.choices brd) (remaining brd)
基本上bestMove是一個舉動,留下剩餘移動的最小數量的選擇。然而,我知道沒有任何元素不會少於一個選擇。如果發現這種移動,我該如何編寫此函數來終止搜索最小值?
換句話說,我想要一個返回最小或第一個遇到的元素的函數,它足夠小(不需要遍歷列表的其餘部分)。
這是我的第一個Haskell程序,所以它可能是非常基本的。這是一個回溯求解器,所以不能在被稱爲數百萬次的函數中遍歷整個列表是非常重要的。