我正在尋找一種遍歷列表的方式,獲取一個元素(按照它的給定順序),使用另一個函數,然後返回該列表並繼續操作而不會丟失列表中的元素。 在示例中我已經看到了實現這一目標是做以下的唯一途徑: counter :: (Eq a1, Num a) => a1 -> [a1] -> a
counter a [] = 0
counter a [x] = if a == x then 1 else 0
我正在爲一個班級編寫棋盤遊戲。 Control.Monad.Loops有一個iterateUntil函數,它非常接近我想要的。然而,我想讓我的行動採取一個參數(這是本次回合的董事會狀態)。所以我的問題是,以下是如何慣用的?有什麼我可以做的,以消除顯式遞歸? iterateUntilIO :: (a -> IO a) -> a -> (a -> Bool) -> IO a
iterateUntil