clojure / transducer / comp - 实现 - 困惑

时间:2016-11-03 07:50:17

标签: clojure

目标

我正在努力了解传感器是如何实施的

混乱

我正在关注 ([] (f (g))) ([x] (f (g x))) ([x y] (f (g x y))) ([x y z] (f (g x y z))) ([x y z & args] (f (apply g x y z args))))) ,实施here

特别是这些行:

(args (f (apply g args)))

现在,我不明白 - 为什么有五个案例?这可不是改写为:

echo 'Test mail body text' | env MAILRC=/dev/null from='a@a.ru' smtp=mail.a.ru smtp-auth-user='a' smtp-auth-password='xxx' smtp-auth=login mailx -v -n -s 'Test mail again v01' b@b.ru

为什么代码是按照上面那样编写的?

1 个答案:

答案 0 :(得分:1)

  

这可能不会被重写为(args (f (apply g args)))吗?

  • 是的,但这与传感器无关。
  • comp执行功能组合,无论功能是否合适 论证是传感器。
  • 许多核心功能,包括comp,专门针对速度提供简单的案例。

正如@ClojureMostly指出的那样,一般问题已经回答here