【问题标题】:Clojure- Amending code for different functionalityClojure - 修改不同功能的代码
【发布时间】:2013-10-12 13:08:16
【问题描述】:

这行代码:

dates (distinct (map (keyword :cobdate) data))

不得不修改到这行代码

dates (distinct (map #(get % "cobdate") data))

为了按照我要求的方式使用

谁能告诉我如何转换这行代码:

grouped-by-token (group-by :severity data)

为了进行同样的转换?

【问题讨论】:

  • 您无法进行相同的转换,因为该行代码与另一行中更改的内容不同。如果您提供了该行应处理的数据示例,您可能会更容易找到帮助。
  • FWIW,你的第一行可以修改为(distinct (map :cobdate data)),它将完成与第二​​个sn-p相同的事情。通常get 被这样使用:(get data "cobdate" value-if-cobdate-missing)。这样可以避免nil 和空指针异常。

标签: clojure hive impala


【解决方案1】:

group-by 的第一个参数是一个函数。 :severity,在您的第三个示例中,被用作函数,因为关键字可以被视为函数:(:severity {:severity 1}) ;; => 1

由于字符串不能被视为函数,因此您必须使用替代语法来提取值。

grouped-by-token (group-by #(% "severity") data)


【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    相关资源
    最近更新 更多