Operacja na funkcjach
Skoro funkcje są wartościami, to nic nie stoi nam na przeszkodzie żeby używać ich z operatorami. Podstawową operacją na funkcjach jest ich złożenie:
1: 2: 3: 4: |
|
Wiadomo, które jest bardziej czytelne, ale w przypadku niektórych złożonych wyrażeń, pozbywamy się sporej ilości nawiasów stosując operator złożenia.
Kolejnym operatorem jest to z czego znany jest F#, czyli |>
(pipe), który służy do pompowania wyników jednej funkcji do drugiej.
1: 2: 3: |
|
Widzicie różnicę? Pipe bierze wartość, a nie funkcję, więc będzie miał nieco inne zastosowania. Zazwyczaj składamy funkcje zanim mamy wartość do przesłania przez nie, a używamy pipe'a kiedy tą wartość od razu mamy.
1:
|
|
Przełożenie funkcji krotki na funkcje argumentowe, jest rzadszym ale również spotykanym przypadkiem operacji na funkcjach. Polega ono na rozwijaniu parametrów z krotki.
1: 2: |
|
Nie mam dobrego pomysłu na zadanie, które nie będzie trywialne, więc przejdźmy do następnego modułu
Full name: Funops.add2mul5
Full name: Funops.add2mul5'
Full name: Funops.add2mul5''
Full name: Funops.uncurry
Full name: Funops.curry