Załóżmy, że mam funkcję move
.Skład funkcji dynamicznie
Teraz, w zależności od niektórych danych wejściowych (powiedzmy, że dane wejściowe mówią "Przenieś o 3"), muszę przenieść 3 razy.
zrobiłbym to tak:
move compose move compose move
Czy można zrobić złożenie funkcji dynamicznie? Tak, że mogę zbudować moją nową funkcję w zależności od tego, ile razy muszę się ruszyć.
Dziękuję
nie jest napisane, ale składa – ccheneson
Zakładając 'move' wygląda mniej więcej tak' ruchu (Thing): Thing', jest to przykład endofunctor (funkcja z 'a -> a' dla jakiegoś" a "), który jest monoid pod skład funkcji i funkcji tożsamości. Jak pokazano w odpowiedziach, endofunktory mogą być tworzone tyle razy, ile jest to konieczne. W Haskell napisalibyśmy pożądaną funkcję jako '\ n -> mconcat (replicate n move)' – cdk