Pracuję w języku Python. Niedawno odkryłem cudowny mały pakiet o nazwie fn. Używam go do komponowania funkcji.Lepsza kompozycja funkcji w języku Python
Na przykład zamiast:
baz(bar(foo(x))))
z FN, można napisać:
(F() >> foo >> bar >> baz)(x) .
Kiedy zobaczyłem to, od razu pomyślałem o Clojure:
(-> x foo bar baz) .
Ale zauważ, że w Clojure dane wejściowe znajdują się po lewej stronie. Zastanawiam się, czy to możliwe w python/fn.
Podczas gdy operator przeciążenia zachowanie jest interesujące dla mnie to po prostu wydaje się złe rzeczy do zrobienia w prawdziwym kodzie. –
Nie ma sposobu na wykonanie tej dokładnej składni w Pythonie, jeśli o to pytasz. Możesz go przybliżać na różne sposoby. Co dokładnie jest dla ciebie ważne pod względem składni? – BrenBarn
Utrzymywanie przepływu od lewej do prawej.Obecnie argument funkcji złożonej jest na końcu. Byłoby jaśniej, gdybym mógł napisać F() >> x >> foo >> bar >> baz lub podobny. –