2016-04-16 6 views
0

地図に表示されているすべてのキーワードを返したいと思います。たとえば:地図内のすべてのキーワードを返す方法

{:a 1 :d 4 :e 4} 

私は(a:d:e)を取得したいと思います。私のコードは

(get {:a 1 :d 4 :e 4} :keywords) 

です。nilを返します。どのようにそれを修正するには?

+0

「{:a:b、:d 4、5:e、7 [8:f:g]}」という出力がありますか? –

+0

*キーワード*を地図から尋ねることはほとんど意味がありません。マップの 'keys'は、任意の値(数字、文字列、任意の種類のコレクション)にすることができます。キーワードは、検索が速い簡単なリテラルなので、よく使われます。関数はキーとして扱うこともできますが、これはまれではありません。 – Thumbnail

答えて

9

地図からkeysをすべて取得したいと思います。同様に

(filter keyword? (keys {:a 1, 'd 4, :e 4, "f" 5})) 
;; => (:a :e) 

:あなたは、彼らがマップ内のキーあなただけが一致keyword?述語filterに必要として表示されたときに、すべてのキーワードを取得したい場合

(keys {:a 1, :d 4, :e 4} 
;; => (:a :d :e) 

:あなたはそれを使用して行うことができます

(filter keyword? (vals {:a :b, "c" :d, 4 "e", 5 'f})) 
;; => (:b :d) 
関連する問題