交换原子作为所用函数的最后一个参数
Swap with atom as last parameter for the used function
我有以下功能:
(defn add-recommendations-to-cache [{:keys [trackingId rec-service recs]} cache]
(assoc-in cache [trackingId rec-service] recs))
我的原子定义为:
(def cache (atom {}))
如果我可以更改传递给函数的参数的顺序,我会使用:
(swap! cache add-recommendations-to-cache msg)
既然我不能,我怎么能 swap
使用原子、函数和包含第一个参数所需内容的消息?我尝试了几种可能的组合(见下文),但 none 似乎有效。
我试过:
(swap! cache add-recommendations-to-cache msg cache)
和
(swap! cache (add-recommendations-to-cache msg))
还有其他几个都没用。
您可以传递自己的函数,按您想要的顺序应用参数:
(swap! cache
(fn [current msg] (add-recommendations-to-cache msg current))
msg)
或
(swap! cache #(add-recommendations-to-cache %2 %1) msg)
或结束 msg
:
(swap! cache #(add-recommendataions-to-cache msg %))
我有以下功能:
(defn add-recommendations-to-cache [{:keys [trackingId rec-service recs]} cache]
(assoc-in cache [trackingId rec-service] recs))
我的原子定义为:
(def cache (atom {}))
如果我可以更改传递给函数的参数的顺序,我会使用:
(swap! cache add-recommendations-to-cache msg)
既然我不能,我怎么能 swap
使用原子、函数和包含第一个参数所需内容的消息?我尝试了几种可能的组合(见下文),但 none 似乎有效。
我试过:
(swap! cache add-recommendations-to-cache msg cache)
和
(swap! cache (add-recommendations-to-cache msg))
还有其他几个都没用。
您可以传递自己的函数,按您想要的顺序应用参数:
(swap! cache
(fn [current msg] (add-recommendations-to-cache msg current))
msg)
或
(swap! cache #(add-recommendations-to-cache %2 %1) msg)
或结束 msg
:
(swap! cache #(add-recommendataions-to-cache msg %))