簡體   English   中英

用clojure中的字母映射索引

[英]map indices with letters in clojure

我正在嘗試在哈希圖中映射字符串txt中的字母索引,為此我嘗試過

(let[
indices (map #(hash-map (keyword %1) %2) txt (range (count txt)))]

但我得到的是類似的東西

({nil \V} {nil \a} {nil \d} {nil \e} {nil \r} {nil \space} {nil \s} {nil \a} {nil \i} {nil \d} {nil \:} {nil \space} {nil \N} {nil \o} {nil \,} {nil \space} {nil \I} {nil \space} {nil \a} {nil \m} {nil \space} {nil \y} {nil \o} {nil \u} {nil \r} {nil \space} {nil \f} {nil \a} {nil \t} {nil \h} {nil \e} {nil \r} {nil \!})

而我想要的是

({:0 \V} {:1 \a} ....

keyword為數字參數返回nil ,因此您需要先將索引轉換為字符串:

(map #(hash-map (keyword (str %1)) %2)
  (range (count txt))
  txt)

或者您可以使用map-indexed

(map-indexed (fn [idx e] {(keyword (str idx)) e}) txt)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM