Unchecked.defaultof<'T>
генерирует значение по умолчанию для любого типа. Существует ли такая общая функция для генерации максимального/минимального значения для любого типа, где имеет смысл тип, имеющий максимальное/минимальное значение?
ИЗМЕНИТЬ
Чтобы ответить на вопрос Джона Палмера о том, где, по моему мнению, это было бы полезно: я хочу создать «изменяемую» версию приведенной ниже функции:
let InternalArrDiffMax (s : 'T []) (diff : 'T -> 'T -> 'C) =
s
|> Array.mapi (fun i e ->
[| for j in i + 1 .. s.Length - 1 -> diff e s.[j] |]
|> Array.maxBy (fun n -> n))
|> Array.maxBy (fun e -> e)
Поскольку я не могу объявить изменяемую переменную без присвоения ей значения, я не думаю, что есть другой способ сделать это, кроме как:
let InternalArrDiffMax (s : 'T []) (diffFun : 'T -> 'T -> 'C) =
let mutable max : 'C = // Generic max of 'C if it makes sense
for i in 0 .. s.Length - 1 do
for j in i + 1 .. s.Length - 1 do
let diff = diffFun s.[i] s.[j]
if (i = 0 && j = 1) || max < diff then
max <- diff
max
Вот почему я думаю, что мне нужен общий макс.
Bounded
, как определено в hackage.haskell.org/package/base-4.7.0.1/docs/ , затем отправьте запрос на извлечение. - person Mauricio Scheffer   schedule 26.10.2014