嗨!
又是我了。我跟踪了我提问的之前的答案,并尝试进行另一个操作,但结果并不符合我的预期。
这是情况:
我的第一个表(产品)看起来像: (产品名 价格)
([(1 (糖果 6.5)] [2 (甜点 1.75)]
[3 (果酱 2.99)] [4 (口香糖 1.25)])
我的第一个表(产品)看起来像: (客户名 产品名 数量)
([(1 (Sara 糖果 3)] [2 (Joe 果酱 3)]
[3 (Sara 口香糖 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),但是结果还是一样...
请帮助我:') .