Funkcja Chcę zaimplementować (proste) matematyczny dodatek funkcyjny w F #, to znaczy:F # Dodanie
Wyobraź F jest pole ze wszystkich funkcji, które map element do elementu B:
Wtedy, moja "dodatek funkcja" powinny zostać zdefiniowane w następujący sposób:
próbowałem następujących cO de wdrożyć dodatek funkcyjny jako operator !+
:
let inline (!+) (f1 : ^a -> ^b, f2 : ^a -> ^b) : ^a -> ^b =
let f (x : ^a) : ^b =
(f1 x) + (f2 x)
f
Jednakże, jeśli chcę skompilować następujące wiersze, będę się błąd:
let f1 x : float = -x // negate x
let f2 x : float = 2. * x // multiply by 2
let f3 = f1 !+ f2 //error : Expexceted `float`, got `'a -> 'b`
jestem całkiem pewny, że jest to spowodowany prostym błędem logicznym, ale wciąż nie mogłem go znaleźć.
Moje pytanie brzmi: jak zdefiniować dodawanie funkcji w F #?
dziękuję bardzo, Sir! – Unknown6656