質問するログイン新規登録

回答編集履歴

1

回答が変だったので修正

2025/06/14 01:30

投稿

miyabi-sun
miyabi-sun

スコア21533

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
- (map :quiz quizzes)
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
  ```