3
我试图通过一个HashMap音译列表,像这样:单字符字符串矢量映射到PersistentMap
(map {"a" 0 "b" 1 "c" 2} ["a","c","b","a"])
,我要吐了出来:
[0,2,1,0]
我该怎么做?
更正:上述作品,但但这并不:
(map {"a" 0 "b" 1 "c" 2} (vec "acba"))
请告诉我这里不同?
我试图通过一个HashMap音译列表,像这样:单字符字符串矢量映射到PersistentMap
(map {"a" 0 "b" 1 "c" 2} ["a","c","b","a"])
,我要吐了出来:
[0,2,1,0]
我该怎么做?
更正:上述作品,但但这并不:
(map {"a" 0 "b" 1 "c" 2} (vec "acba"))
请告诉我这里不同?
使用mapv
代替
user=> (map {"a" 0 "b" 1 "c" 2} ["a" "c" "b" "a"])
(0 2 1 0)
user=> (mapv {"a" 0 "b" 1 "c" 2} ["a" "c" "b" "a"])
[0 2 1 0]
另外:
user=> (map {"a" 0 "b" 1 "c" 2} (vec "acba"))
(nil nil nil nil)
user=> (vec "acba")
[\a \c \b \a]
user=> (= \a "a")
false
这工作(但是迂回):
user=> (mapv {"a" 0 "b" 1 "c" 2} (map str (vec "acba")))
(0 2 1 0)
'(mapv { “” 0 “B” 1“在最后一个例子中,c“2}(map str”acba“))就足够了 - 你只需要一串字符串,而不是字符。 – ToBeReplaced 2013-05-06 19:46:07
只是为了好玩:如果你在使用关键字:'((apply juxt [:a:c:b:a]){:a 0:b 1:c 2})' – Kyle 2013-05-06 19:48:24
@ToBeReplaced同意 - 这发生在我身上以及。我只是在处理提问者的例子。 – noahlz 2013-05-06 19:48:25