是否有任何宏(声明除外)用于编写函数而不考虑Clojure中函数声明的顺序

Ert*_*tin 1 clojure clojurescript

我想编写函数而不考虑函数声明的顺序,我不想使用declare函数,因为我需要声明我不想做的所有函数名.

我想要一些宏或一些能为我带来魔力的功能.长话短说,我需要写像Java函数(方法声明的顺序并不重要)

Dav*_*zhu 5

我最喜欢函数式编程的一个最好的事情是,它的写作流程与思维流程相同.这就像剥洋葱一样,每时每刻,我只需要专注于这一层的工作,并将内部部分视为理所当然.而且不用担心函数名,foobar会在第一被罚款.在这种写作风格中,函数从源文件的末尾定义并实现回顶部.在一个函数调用多个其他函数的情况下,此线性结构变为树状结构,但文件中始终存在单个点以插入新函数.没有选择和担忧.

是的,有时我们需要处理一些没有其他依赖关系的代码片段.当然,它们可以放在源文件的顶部.

要提前回答这个问题,macros不是魔术.如果存在这样的宏,则该宏将需要将整个源文件作为输入,分析每个代码块之间的依赖关系,并以正确的顺序重新流动它们.由于词汇范围的存在,对依赖性的分析是非平凡的.这几乎就像编写编译器一样.我不相信这样的宏存在(已由任何人编写),它能做的商品对我来说不是那么大.