【发布时间】:2013-06-23 19:22:36
【问题描述】:
我在 Python 中工作。最近,我发现了一个很棒的小包,叫做fn。我一直在使用它进行功能组合。
例如,而不是:
baz(bar(foo(x))))
用fn,你可以写:
(F() >> foo >> bar >> baz)(x) .
看到这里,我立刻想到了 Clojure:
(-> x foo bar baz) .
但请注意,在 Clojure 中,输入是如何位于左侧的。我想知道这在 python/fn 中是否可行。
【问题讨论】:
-
虽然运算符重载行为很有趣,但对我来说,这在实际代码中似乎是一件坏事。
-
如果这就是您所要求的,则无法在 Python 中使该精确语法工作。您可以通过各种方式对其进行近似。语法方面对你来说究竟什么是重要的?
-
保持从左到右的流动。目前,组合函数的参数位于末尾。如果我可以写 F() >> x >> foo >> bar >> baz 或类似的东西会更清楚。
标签: python clojure functional-programming function-composition