Clojure映射嵌套

Clojure映射嵌套,clojure,Clojure,我有一个像这样的向量结构 [{:email "email@gmail.com", :password "pass"} {:email "email2@yahoo.com", :password "pass2"} {:email "email3@yahoo.com", :password "pass3"} {:email "email4@gmail.com", :password "pass4"}] 我怎样才能把它画成这样的地图呢?这两个电子邮件值必须是相同的 {{"email@g

我有一个像这样的向量结构

[{:email "email@gmail.com", :password "pass"} 
 {:email "email2@yahoo.com", :password "pass2"} 
 {:email "email3@yahoo.com", :password "pass3"} 
 {:email "email4@gmail.com", :password "pass4"}]
我怎样才能把它画成这样的地图呢?这两个电子邮件值必须是相同的

 {{"email@gmail.com"{:email "email@gmail.com", :password "pass"}}, 
  {"email2@yahoo.com"{:email "email2@yahoo.com", :password "pass2"}}, 
  {"email3@yahoo.com" {:email "email3@yahoo.com", :password "pass3"}} ,
  {"email4@gmail.com"{:email "email4@gmail.com", :password "pass4"}}     
我对clojure有点陌生,所以非常感谢您的帮助

(def a [{:email "email@gmail.com", :password "pass"}
        {:email "email2@yahoo.com", :password "pass2"}
        {:email "email3@yahoo.com", :password "pass3"}
        {:email "email4@gmail.com", :password "pass4"}])

(zipmap (map :email a) a)
创建一个电子邮件地址序列,然后将该序列和原始映射的向量压缩到一个新映射中,地址作为键,原始映射作为值

(想想左侧垂直显示的电子邮件列表,右侧垂直显示的原始地图条目,以及将它们连接在一起的向下移动的拉链)

创建一个电子邮件地址序列,然后将该序列和原始映射的向量压缩到一个新映射中,地址作为键,原始映射作为值

(想想左侧垂直显示的电子邮件列表,右侧垂直显示的原始地图条目,以及将它们连接在一起的向下移动的拉链)

创建一个电子邮件地址序列,然后将该序列和原始映射的向量压缩到一个新映射中,地址作为键,原始映射作为值

(想想左侧垂直显示的电子邮件列表,右侧垂直显示的原始地图条目,以及将它们连接在一起的向下移动的拉链)

创建一个电子邮件地址序列,然后将该序列和原始映射的向量压缩到一个新映射中,地址作为键,原始映射作为值

(想想左侧垂直显示的电子邮件列表和右侧垂直显示的原始地图条目,以及向下移动的拉链将它们连接在一起)

另一种选择(尽管您的输出将嵌套在向量中)是使用:

另一种选择(尽管您的输出将嵌套在向量中)是使用:

另一种选择(尽管您的输出将嵌套在向量中)是使用:

另一种选择(尽管您的输出将嵌套在向量中)是使用:



如何向:password关键字中的所有值添加函数?我正在尝试合并(creds/hash bcrypt“string/value of password”)函数。如果您询问如何转换与:password关联的值,则如果密钥已存在,则assoc将“覆盖”。e、 g.(zipmap(map:email a)(map#(assoc%:password(关键字(:password%)))a))要将字符串转换为关键字否,我想在:password关键字中的所有值上实现我的函数。不确定你得到了什么。也许可以用您想要的输出的一些示例作为另一个问题提问?我已经这样做了,我已经回答了这个问题…现在我没有问题了。:D再次感谢您的帮助。我如何才能在:password关键字中的所有值中添加函数?我正在尝试合并(creds/hash bcrypt“string/value of password”)如果您询问如何转换与:password关联的值,则如果密钥已存在,则assoc将“覆盖”。e、 g.(zipmap(map:email a)(map#(assoc%:password(关键字(:password%)))a))要将字符串转换为关键字否,我想在:password关键字中的所有值上实现我的函数。不确定你得到了什么。也许可以用您想要的输出的一些示例作为另一个问题提问?我已经这样做了,我已经回答了这个问题…现在我没有问题了。:D再次感谢您的帮助。我如何才能在:password关键字中的所有值中添加函数?我正在尝试合并(creds/hash bcrypt“string/value of password”)如果您询问如何转换与:password关联的值,则如果密钥已存在,则assoc将“覆盖”。e、 g.(zipmap(map:email a)(map#(assoc%:password(关键字(:password%)))a))要将字符串转换为关键字否,我想在:password关键字中的所有值上实现我的函数。不确定你得到了什么。也许可以用您想要的输出的一些示例作为另一个问题提问?我已经这样做了,我已经回答了这个问题…现在我没有问题了。:D再次感谢您的帮助。我如何才能在:password关键字中的所有值中添加函数?我正在尝试合并(creds/hash bcrypt“string/value of password”)如果您询问如何转换与:password关联的值,则如果密钥已存在,则assoc将“覆盖”。e、 g.(zipmap(map:email a)(map#(assoc%:password(关键字(:password%)))a))要将字符串转换为关键字否,我想在:password关键字中的所有值上实现我的函数。不确定你得到了什么。也许可以用你想要的输出的一些例子作为另一个问题来提问?我已经这样做了,我得到了答案…现在我没有问题了。:D再次感谢你的帮助。简洁的解决方案,但我需要它是map…status203回答了我的问题,但无论如何谢谢你。尽管
(map(fn[[k[v]]]{k v})很容易修复)(分组方式:email a))
整洁的解决方案,但我需要它是map…status203回答了我的问题,但无论如何谢谢你。虽然
(map(map(fn[[k[v]]]]{k v})(分组方式:email a))
整洁的解决方案,但我需要它是map…status203回答了我的问题,但无论如何谢谢你。尽管
(map(fn[[k[v]]]]]]]]非常容易修复]]{k v}(分组人:email a))
整洁的解决方案,但我需要它是map…status203回答了我的问题,但无论如何谢谢你。尽管
(map(fn[[k[v]]]]{k v})(分组人:email a))
user=> (def a [{:email "email@gmail.com", :password "pass"}
        {:email "email2@yahoo.com", :password "pass2"}
        {:email "email3@yahoo.com", :password "pass3"}
        {:email "email4@gmail.com", :password "pass4"}])
#'user/a
user=> (group-by :email a)
{"email@gmail.com" [{:email "email@gmail.com", :password "pass"}], "email2@yahoo.com" [{:email "email2@yahoo.com", :password "pass2"}], "email3@yahoo.com" [{:email "email3@yahoo.com", :password "pass3"}], "email4@gmail.com" [{:email "email4@gmail.com", :password "pass4"}]}
user=>