Clojure:我正在尝试使用“ some”而不是“ doseq”,但我不确定如何使用它

用户名

在这种情况下如何用“ some”替换“ doseq”。我是clojure的新手。

(def handle (atom ()))
    ;; #'user/players
    ;; conjoin a keyword into that list
    (swap! handlers conj [:report "handles"])
    ;;=> ([:report "handles"])
    ;; conjoin a second keyword into the list
    (swap! handlers conj [:demo "handles2"])
    ;;=> ([:demo "handles2"] [:report "handle"])
    (doseq [[a b] @handlers] (println a "--" b))
     ;;=> :demo -- handles2
    ;;=> :report -- handles
亚伦·贝尔

oseqq的Clojure文档以及其中的一些示例都可以帮助您弄清楚使用什么以及如何使用它。

关于您的情况,我有几件事不知道,但也许我可以为您提供帮助。


一些

根据条件检测是否存在某种东西。如果谓词返回true,则返回谓词的结果。

带有谓词集合

谓词示例:

#(= 2 %) ; Equals 2
(fn [val] (= val "user3438838")) ; equals your username

集合示例:

[1 2 3 4 5 6 7 8]
["user3438838" "programs" "in" "Clojure"]

让我们评估这些的组合:

(some #(= 2 %) [1 2 3 4 5 6 7 8]) ; => true
(some #(= 2 %) ["user3438838" "programs" "in" "Clojure"]) ; => nil
(some (fn [val] (= val "user3438838")) [1 2 3 4 5 6 7 8]) ; => nil
(some (fn [val] (= val "user3438838")) ["user3438838" "programs" "in" "Clojure"]) => true


剂量q

为副作用的序列的所有元素实现一个表达式。这是我从JS获得的第一个功能,但这通常是不正确的(它没有利用延迟评估,降低性能的优势)。通常要应用递归表达式,例如loopwith recur,但doseq在这里可能有意义。

我们将采用与 some

doseq接受一个或多个序列,以及表面上使用序列中每个元素的表达式

序列示例:

[x ["user3438838" "programs" "in" "Clojure"]]
[x [1 2 3 4 5 6 7 8]]

; Note: Can use multiple [x (range 10) y (range 10 20)]

身体表情示例:

(println x)
(println (str "The number/word is: " x))

现在,我们将这些结合起来:

(doseq [x ["user3438838" "programs" "in" "Clojure"]] (println x)) ; Prints "user3438838\nprograms\nin\nClojure"
(doseq [x ["user3438838" "programs" "in" "Clojure"]] (println (str "The number/word is: " x))) ; Prints "The word is: user3438838 ..." 
(doseq [x [1 2 3 4 5 6 7 8]] (println x)) ; Prints "1\n2\n3\n4\n5\n6\n7\n8
(doseq [x [1 2 3 4 5 6 7 8]] (println (str "The number/word is: " x))) ; Prints "The number/word is: 1 ..."

希望这可以帮助您理解两者。

如果您是新手,我认为学习Clojure的首选书是Daniel Higginbotham(2015)勇敢和真实的Clojure,他在其中描述了一些内容(不是doseqb / c,您通常不希望使用延迟/递归求值的表达式) 。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我正在尝试使用聚合函数来合并数据,但我不确定我做错了什么

来自分类Dev

我正在尝试将tr与多个集合一起使用,但不确定如何

来自分类Dev

尝试使用 3 的中位数实现快速排序,但我不确定我哪里出错了?

来自分类Dev

我正在尝试实现无限滚动到我的UITableViewController中,不确定如何使用返回的数据库结果

来自分类Dev

while 循环正在为变量赋值,稍后我将使用它但不确定

来自分类Dev

不确定如何使用我的脚本

来自分类Dev

我正在尝试通过Docker使用Clojure应用程序连接到MongoDB

来自分类Dev

我正在尝试通过Docker使用Clojure应用程序连接到MongoDB

来自分类Dev

修改WordPress标头,但我不确定我使用的主题是

来自分类Dev

我正在尝试抓取网页,但得到的是功能而不是实际数据

来自分类Dev

即使我尝试保存时,使用React输入字段也表示合成,并且设置值而不是defaultValue正在呈现[Object,object]

来自分类Dev

我正在尝试在nodejs中使用sendgrid发送电子邮件。但是却收到“ TypeError:对象不是函数”错误

来自分类Dev

我正在尝试将文本拆分为段落,它使用 javascript 拆分逗号而不是新行或段落

来自分类Dev

我正在尝试使用jQuery创建“沉船”

来自分类Dev

我正在尝试在React中使用setState

来自分类Dev

我正在尝试使用javascript闭包

来自分类Dev

我正在尝试使用此参数

来自分类Dev

我正在尝试使用 grep 命令

来自分类Dev

我正在使用的库正在打开输入流,而不是关闭它。我该如何关闭?

来自分类Dev

我正在使用DOS,并且正在尝试使背景变白

来自分类Dev

我不确定如何使用异步任务进行延迟加载?

来自分类Dev

我正在尝试使用JavaScript创建测验,但我的按钮无法正常工作

来自分类Dev

我正在尝试使用 python 制作 ARC 图,但我无法获得统一的高度

来自分类Dev

我正在尝试使用 Selenium 获取页面源代码,但我得到了空页面

来自分类Dev

我正在尝试使用 Debian 10 挂载我的 SD 卡

来自分类Dev

我正在使用javaFx并且正在尝试确定某个点是否在边界框内

来自分类Dev

我正在使用javaFx并且正在尝试确定某个点是否在边界框内

来自分类Dev

MySQL不断重启(但我不确定为什么)

来自分类Dev

闻起来像AJAX,但我不确定

Related 相关文章

  1. 1

    我正在尝试使用聚合函数来合并数据,但我不确定我做错了什么

  2. 2

    我正在尝试将tr与多个集合一起使用,但不确定如何

  3. 3

    尝试使用 3 的中位数实现快速排序,但我不确定我哪里出错了?

  4. 4

    我正在尝试实现无限滚动到我的UITableViewController中,不确定如何使用返回的数据库结果

  5. 5

    while 循环正在为变量赋值,稍后我将使用它但不确定

  6. 6

    不确定如何使用我的脚本

  7. 7

    我正在尝试通过Docker使用Clojure应用程序连接到MongoDB

  8. 8

    我正在尝试通过Docker使用Clojure应用程序连接到MongoDB

  9. 9

    修改WordPress标头,但我不确定我使用的主题是

  10. 10

    我正在尝试抓取网页,但得到的是功能而不是实际数据

  11. 11

    即使我尝试保存时,使用React输入字段也表示合成,并且设置值而不是defaultValue正在呈现[Object,object]

  12. 12

    我正在尝试在nodejs中使用sendgrid发送电子邮件。但是却收到“ TypeError:对象不是函数”错误

  13. 13

    我正在尝试将文本拆分为段落,它使用 javascript 拆分逗号而不是新行或段落

  14. 14

    我正在尝试使用jQuery创建“沉船”

  15. 15

    我正在尝试在React中使用setState

  16. 16

    我正在尝试使用javascript闭包

  17. 17

    我正在尝试使用此参数

  18. 18

    我正在尝试使用 grep 命令

  19. 19

    我正在使用的库正在打开输入流,而不是关闭它。我该如何关闭?

  20. 20

    我正在使用DOS,并且正在尝试使背景变白

  21. 21

    我不确定如何使用异步任务进行延迟加载?

  22. 22

    我正在尝试使用JavaScript创建测验,但我的按钮无法正常工作

  23. 23

    我正在尝试使用 python 制作 ARC 图,但我无法获得统一的高度

  24. 24

    我正在尝试使用 Selenium 获取页面源代码,但我得到了空页面

  25. 25

    我正在尝试使用 Debian 10 挂载我的 SD 卡

  26. 26

    我正在使用javaFx并且正在尝试确定某个点是否在边界框内

  27. 27

    我正在使用javaFx并且正在尝试确定某个点是否在边界框内

  28. 28

    MySQL不断重启(但我不确定为什么)

  29. 29

    闻起来像AJAX,但我不确定

热门标签

归档