嗨!
还是我。我在之前的回答的基础上继续进行了另一个操作,但并没有得到我想要的结果。
情况如下
我的第一个表(products)看起来像这样的:(product_name price)
([1 (candies 6.5)] [2 (sweets 1.75)]
[3 (jam 2.99)] [4 (gum 1.25)])
我的第一个表(products)看起来像这样的:(customer_name product_name quantity)
([1 (Sara candies 3)] [2 (Joe jam 3)]
[3 (Sara gum 1)])
我试图做的是,如果输入例如Sarah,我会得到Sarah所做销售的总和,即:(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),得到了同样的结果...
请帮忙:') .