Jak zdefiniować rozszerzenie typu dla T [] w F #?
W języku C # mogę zdefiniować metodę rozszerzenia dla ogólnej tablicy typu T w następujący sposób:
public static T GetOrDefault<T>(this T[] arr, int n)
{
if (arr.Length > n)
{
return arr[n];
}
return default(T);
}
ale dla mojego życia nie mogę wymyślić, jak zrobić to samo w F #! próbowałemtype 'a array with
, type array<'a> with
itype 'a[] with
a kompilator nie był zadowolony z żadnego z nich.
Czy ktoś może mi powiedzieć, co jest słuszne w F #?
Jasne, mogę to zrobić, przysłaniając moduł Array i łatwo dodając do tego funkcję, ale naprawdę chcę wiedzieć, jak to zrobić jako metoda rozszerzenia!