2013-06-13 28 views
1

我是ML新手,我有一個字符數組!我試圖找到一個數組函數,以便給函數char#「T」並返回該數組中該元素的位置。一個提示可能是非常有用的,因爲我嘗試了查找功能,它不能這樣工作!標準ML編程,數組函數

回答

0

findi from Array結構會做你想做的。對於'a array類型的數組,findi需要(int * 'a) -> bool'a array,並返回(int * 'a) option。所以如果你想要一個角色並返回角色的位置,你只需要找出合適的參數來傳遞給findi以及解釋結果的適當方法。

因此,例如:

- fun findPos char = (Option.map (fn (i,_) => i)) o (Array.findi (fn (_,c) => c = char)); 
stdIn:2.65 Warning: calling polyEqual 
val findPos = fn : ''a -> ''a array -> int option 
- findPos #"c" (Array.fromList (explode "abcdef")); 
val it = SOME 2 : int option 
- findPos #"z" (Array.fromList (explode "abcdef")); 
val it = NONE : int option 
+0

非常感謝你的幫助,它不是一個家庭作業,但我需要的,我在毫升我書面方式的程序,其中compliler犯規接受使用遇見的作爲你能否給我更多的解釋,以便回覆角色的位置? –

+0

當然。添加了一個如何做到這一點的例子。 – jacobm