но компилятор жалуется что не может вывести тип e
Как можно исправить?
let filter (id: int) (list: ^a list when (^a): (member Id: int)) =
List.filter (fun e -> e.Id <> id) list
inline сделать функцию. Вызов Id сделать через раковый синтаксис
let inline filter (id: int) (list: ^a list when (^a): (member Id: int)) = list |> List.filter (fun e -> (^a: (member Id: int) e) <> id)
Вот да, спасибо, так гораздо понятнее чем мое "Вызов Id сделать через раковый синтаксис"
Обсуждают сегодня