【问题标题】:Mapping a boolean to a list in clojure将布尔值映射到 clojure 中的列表
【发布时间】:2021-01-16 13:29:35
【问题描述】:

我正在尝试获取一个列表,以针对特定数字评估真/假。当我定义函数时,clojure 定义得很好。但它没有做我想做的事。刚刚学习clojure...所以我对语法还不是很满意...如果这是一个菜鸟问题,请道歉。

理想情况下,它会接受一个类似 (list 9 0 3) 的列表并将其评估为 (list true false true)

(defn myfunc [lst](map (> x 1) lst))

【问题讨论】:

  • “但它没有做我想做的事”不是一个很好的错误描述。请确保在其他问题中也包含错误消息或结果与您的预期不符。

标签: clojure functional-programming


【解决方案1】:

下面是正确的语法:

(defn greater-than-one?
  [x]
  (< 1 x))

然后使用它:

(mapv greater-than-one? (list 9 0 3)) => [true false true]

在您的原始格式中,您也可以像这样解决它:

(defn myfunc [lst]
  (map #(> % 1) lst))

并使用它:

(myfunc (list 9 0 3)) => (true false true)

您可能会发现this template project 有助于入门。也请务必see the list of documentation

【讨论】:

  • 酷!谢谢!另外:您将如何对列表求幂?
  • @bl4ckh4t (map #(Math/exp %) coll)
  • 所以,假设我想要一个过程来获取一个列表 (l) 和一个整数 (n) 并将序列 l 返回到 n 次方,我可以这样做 (defn myfunc [xn] (map # (数学/exp % n) x)) ??但是喂这个 x = (list 'a 'b) 和 n = 2 返回 ##NaN ##NaN
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-09
  • 2019-07-03
  • 1970-01-01
  • 2014-11-27
  • 1970-01-01
  • 2021-04-08
  • 2011-04-30
相关资源
最近更新 更多