我正在嘗試編寫一個將列表拆分爲兩個的方法。該函數應返回兩個列表的一個元組,並且該函數採用的參數是第一個列表中的項目數,然後是列表。這裏就是我的意思分割列表F Sharp
列表[1,2,3,4]
分(1,表) - >([1],[2,3,4]) 分(3,列表) - >([1,2,3],[4])
這是我到目前爲止有:
let rec mysplit = function
|(n,[])->([],[])
|(1,x::xs)->(x::[],xs)
|(n,x::xs)-> mysplit(n-1,xs)
我不完全知道如何 「捕獲」 的元組回從遞歸呼叫。不知道在哪裏有一個額外的let語句來臨時保存我正在建立的列表。對於語言來說是新的,所以有幾種不同的方法會很好學習。
現在,這就是我所說的f# – James