我有一個序列,我需要找到序列的最小值以及該序列中該值的索引 - 有效地某種「Seq.mini」功能沿Seq.mapi或Seq.iteri行。函數不僅可以找到序列的最小值,而且還可以找到F#中的索引號
在F#中表達這種乾淨/最習慣的方式是什麼?
在習慣上,我應該期待寫一個函數返回一個元組(值,索引)或(索引,值),如果有的話是否有約定這些值應該出現的順序?另一件事:如果有多個具有相同最小值的元素,我需要首次出現的索引 - 我想這將轉化爲嚴格的「小於(<)」比較,而不是「小於或等於(< =)「 - 正確嗎?
非常感謝!我能夠將這與Ramon的答案中的元組函數結合起來,以取代lambda,使其看起來可讀並且有意義(對我來說) – 2012-02-03 13:02:54
只是一個想法:如果函數是mini的第一個參數,第二個是序列,將與F#集合函數一致,'let mini fs = s |> Seq.mapi(fun ix - >(i,x))|> Seq.minBy f' – 2012-02-03 14:00:36