回答編集履歴
1
回答が変だったので修正
answer
CHANGED
@@ -1,35 +1,38 @@
|
|
1
|
-
> 1、:quiz の値だけを抜き出した配列
|
1
|
+
> 1、:quiz の値だけを抜き出した配列
|
2
|
-
|
2
|
+
|
3
|
-
キーワードはMapに対する関数としても使え、
|
3
|
+
キーワードはMapに対する関数としても使え、
|
4
|
-
Mapのキーを抜き出す関数としても作用するのでこんな風に書けます。
|
4
|
+
Mapのキーを抜き出す関数としても作用するのでこんな風に書けます。
|
5
|
-
|
5
|
+
|
6
|
-
```clojure
|
6
|
+
```clojure
|
7
|
-
(def quizzes
|
7
|
+
(def quizzes
|
8
|
-
[{:quiz "Where is Tokyo?" :answer "Japan"}
|
8
|
+
[{:quiz "Where is Tokyo?" :answer "Japan"}
|
9
|
-
{:quiz "Where is New York?" :answer "America"}
|
9
|
+
{:quiz "Where is New York?" :answer "America"}
|
10
|
-
{:quiz "Where is Alabama?" :answer "America"}])
|
10
|
+
{:quiz "Where is Alabama?" :answer "America"}])
|
11
|
-
|
11
|
+
|
12
|
-
(map :quiz quizzes)
|
12
|
+
(map :quiz quizzes)
|
13
|
-
|
13
|
+
; '("Where is Tokyo?" "Where is New York?" "Where is Alabama?")
|
14
|
+
|
14
|
-
;; どうしてもvectorで欲しい場合
|
15
|
+
;; どうしてもvectorで欲しい場合
|
15
|
-
(
|
16
|
+
(mapv :quiz quizzes)
|
16
|
-
|
17
|
+
(into [] (map :quiz quizzes))
|
18
|
+
; ["Where is Tokyo?" "Where is New York?" "Where is Alabama?"]
|
19
|
+
|
17
|
-
;; 今回は非推奨ながら、やることが増えるなら->>マクロを使うのもあり
|
20
|
+
;; 今回は非推奨ながら、やることが増えるなら->>マクロを使うのもあり
|
18
|
-
(->> quizzes
|
21
|
+
(->> quizzes
|
19
|
-
(map :quiz)
|
22
|
+
(map :quiz)
|
20
|
-
vec)
|
23
|
+
vec)
|
21
|
-
```
|
24
|
+
```
|
22
|
-
|
25
|
+
|
23
|
-
> 2、:answer が "America" のハッシュを抜き出した配列
|
26
|
+
> 2、:answer が "America" のハッシュを抜き出した配列
|
24
|
-
|
27
|
+
|
25
|
-
[map](https://clojuredocs.org/clojure.core/map)ではなく
|
28
|
+
[map](https://clojuredocs.org/clojure.core/map)ではなく
|
26
|
-
[filter](https://clojuredocs.org/clojure.core/filter)を使いましょう。
|
29
|
+
[filter](https://clojuredocs.org/clojure.core/filter)を使いましょう。
|
27
|
-
|
30
|
+
|
28
|
-
```clojure
|
31
|
+
```clojure
|
29
|
-
(def quizzes
|
32
|
+
(def quizzes
|
30
|
-
[{:quiz "Where is Tokyo?" :answer "Japan"}
|
33
|
+
[{:quiz "Where is Tokyo?" :answer "Japan"}
|
31
|
-
{:quiz "Where is New York?" :answer "America"}
|
34
|
+
{:quiz "Where is New York?" :answer "America"}
|
32
|
-
{:quiz "Where is Alabama?" :answer "America"}])
|
35
|
+
{:quiz "Where is Alabama?" :answer "America"}])
|
33
|
-
|
36
|
+
|
34
|
-
(filter #(= (:answer %) "America") quizzes)
|
37
|
+
(filter #(= (:answer %) "America") quizzes)
|
35
38
|
```
|