我一直在用ml函數做一些事情,並且遇到了一些煩人的事情。詢問ML遞歸函數
我會用簡單的代碼來解釋它。 例如,如果有一個列表(int * int),並且我想檢查是否有一些元組中包含3的元組。
L = [(1,2),(2,3),(3,5),(3,4)]
所以在這個名單,我想5和4 然而,ML,功能是遞歸的,所以如果我寫這樣的代碼。
fun a(list) =
if #1(hd(list)) = 3 then #2(hd(list))
else a(tl(list))
在這個簡單的功能
,它可以得到5而不是4因爲一旦檢測到(3,5)滿足條件則返回5和函數完成。
有沒有什麼辦法讓4?