我编写的东西没有副作用,但我的代码不是很易读.考虑以下代码:
(let [csv_data (if header_row (cons header_row data_rows) data_rows)] )
我正在尝试csv_data
在一段代码中使用.什么是干净的调理方式header_row
?我看过了if-let
,但看不出这对我们有什么帮助.
我遇到了类似于函数for循环的情况,我将结果绑定到局部变量,代码看起来像一堆表达式.
在很多情况下,我真的必须创建一个单独的辅助函数吗?我在这里错过了什么?
使用cond->>
宏
(let [csv_data (cond->> data_rows header_row (cons header-row)] )
它的工作方式与常规->>
宏类似,但在每个线程形式之前,必须放置一个测试表达式来确定是否使用线程化表单.
还有cond->
.在这里阅读有关线程宏的更多信息:官方线程宏指南