【发布时间】:2017-08-29 17:16:18
【问题描述】:
鉴于 Alice 的三元组和 Bob 的三元组(列表),我需要比较每个元素,所以如果 alice_triplet[i] > bob_triplet[i],Alice 的分数加一,反之亦然。
我有这个代码:
def main do
alice_triplet = [5, 6, 7]
bob_triplet = [3, 6, 10]
alice_score = 0
bob_score = 0
Enum.zip(alice_triplet, bob_triplet)
|> Enum.each(fn
tuple when elem(tuple, 0) > elem(tuple, 1) -> alice_score = alice_score + 1
tuple when elem(tuple, 1) > elem(tuple, 0) -> bob_score = bob_score + 1
_ -> nil end)
IO.puts alice_score
IO.puts bob_score
end
但是,输出是:
0
0
为什么?我认为这是关于变量范围的,因为我收到了这个警告:
警告:变量“alice_score”未使用 solution.ex:12
警告:变量“bob_score”未使用 solution.ex:13
有没有“更实用”的方法来做到这一点?我正在学习 Elixir(实际上是一般的 FP),所以任何建议都将不胜感激。
【问题讨论】:
标签: functional-programming elixir