我開始從頭開始學習f#,並且發現自己對數組和列表之間的差異感到十分困惑,我知道列表是不可改變的,但仍然存在。F#在列表中添加一個元素(如果它不存在)
我試圖創建一個函數,如果它不存在並返回新列表中的元素添加到一個列表,否則,如果它存在返回當前列表。
這裏是我到目前爲止有:
let elem x= Array.exists ((=) x)
let elemOrAdd e l = if elem e l then l else e::l
電子:: L不工作時,Visual Studio拋出
This expression was expected to have type
'a []
but here has type
'b list
我已經覺得有點腥,我要使用Array.exists,但我真的很茫然。
有什麼暗示我做錯了什麼?
是的,就是這樣。但是,數組和列表之間的區別讓我感到困惑。 –
簡潔['array'](http://msdn.microsoft.com/en-us/library/dd233214.aspx)是一個** mutable **固定大小的集合,其中包含運算符'.'和'[]' 直接訪問任何元素,而['list'](http://msdn.microsoft.com/en-us/library/dd233224.aspx)是**不可變的**集合與運算符'::'和'@ ' 只允許順序訪問元素。 –