嗨!
又是我了。我查阅了先前对我的问题给出的答案,想执行另一个操作,但我没有得到我想要的结果。
这里的情况
我的第一个表(产品)看起来是这样的:: (产品名称 价格)
([1 (candies 6.5)] [2 (sweets 1.75)]
[3 (jam 2.99)] [4 (gum 1.25)])
我的第一个表(产品)看起来是这样的:: (客户名称 产品名称 数量)
([1 (Sara candies 3)] [2 (Joe jam 3)]
[3 (Sara gum 1)])
我试图做到的是,如果输入例如 Sara,我将得到 Sara 的销售总额,这意味着: (3*6.5 + 1*1.25) = $20.75 (在这种情况下)
输入部分我没什么问题(我从终端接收客户名称作为输入)
然而我的代码
(defn sales_prices_with_cond [name_cus] (map
(fn [y z]
(if (= (str name_cus) (str (nth (first z) 1)))
list (* (Double. (nth (second y) 1)) (Integer/parseInt (nth (second z) 2))))
)
products
sales))
(println (reduce + sales_prices_with_cond "Sara"))
给我所有销售*数量的总和。感觉条件被跳过了,或者代码可能写得不好...
我还尝试了(some),但得到的结果是一样的...
请帮助:') .