回答編集履歴

1

より良い解決策の追記

2020/01/09 05:42

投稿

marny
marny

スコア19

test CHANGED
@@ -1,6 +1,6 @@
1
1
  ```Elixir
2
2
 
3
- def multilist(list1,list2) do
3
+ def MultiList(list1,list2) do
4
4
 
5
5
  Enum.map(0..length(list1)-1,fn(n)->
6
6
 
@@ -15,3 +15,51 @@
15
15
  で一応できました.
16
16
 
17
17
  他にもっと良い書き方がありましたら教えていただきけると嬉しいです.
18
+
19
+
20
+
21
+ ----------追記------------
22
+
23
+ ```Elixir
24
+
25
+ defmodule MultiList do
26
+
27
+ def sum(list1, list2, total \ [])
28
+
29
+
30
+
31
+ def sum([], [], total) do
32
+
33
+ Enum.reverse(total)
34
+
35
+ end
36
+
37
+
38
+
39
+ def sum([h1 | t1], [], total) do
40
+
41
+ sum(t1, [], [h1 | total])
42
+
43
+ end
44
+
45
+
46
+
47
+ def sum([], [h2 | t2], total) do
48
+
49
+ sum([], t2, [h2 | total])
50
+
51
+ end
52
+
53
+
54
+
55
+ def sum([h1 | t1], [h2 | t2], total) do
56
+
57
+ sum(t1, t2, [h1 + h2 | total])
58
+
59
+ end
60
+
61
+ end
62
+
63
+ ```
64
+
65
+ [Elixir Forum](https://elixirforum.com/t/id-like-to-take-the-element-of-the-same-index-from-multiple-lists/28102)にて、リストの長さが異なる場合にも対応した解決策を答えてもらったので追記します.