首页 > 其他分享 >无涯教程-Clojure - send-off函数

无涯教程-Clojure - send-off函数

时间:2023-10-29 11:03:00浏览次数:42  
标签:off 函数 示例 counter 无涯 send 代理

在某些情况下,为代理分配了实际上是阻止的函数。一个简单的示例是,考虑您正在从本质上是阻塞的文件中读取内容。

send-off - 语法

(send agentname function value)

参数      -  " agentname"是将发送函数重定向到的代理, "function"用于确定更改代理价值的方式, "value"是传递给该函数的值,该值又将用于相应地更新代理的值。

返回值  -  如果存在非阻塞函数,则首先按原样返回代理,最后,返回具有新值的代理对象 。

send-off - 示例

以下程序显示了有关如何使用它的示例。

(ns clojure.examples.example
   (:gen-class))
(defn Example []
   (def counter (agent 0))
   (println @counter)
   
   (send-off counter + 100)
   (println @counter)
   (println @counter))
(Example)

我们正在看增加计数器值的相同示例,但是从下面的输出中,可以清楚看出发送函数的作用。

上面的程序产生以下输出。

0
0
0

可以看出,即使我们已经向代理发送了将值设置为100的函数,它也不会立即反映出来。发送函数首先按原样返回代理的值。一旦Clojure正确设置了代理的值,便会更新代理的值,我们便可以看到代理的新值。

参考链接

https://www.learnfk.com/clojure/clojure-sendoff.html

标签:off,函数,示例,counter,无涯,send,代理
From: https://blog.51cto.com/u_14033984/8078164

相关文章

  • 无涯教程-Clojure - Immutable Nature函数
    默认情况下,结构也是不可变的,因此,如果我们尝试更改特定键的值,则它不会更改。Immutable-示例(nsclojure.examples.example(:gen-class))(defnExample[](defstructEmployee:EmployeeName:Employeeid)(defemp(struct-mapEmployee:EmployeeName"Learnfk"......
  • 无涯教程-Clojure - Accessing Individual Fields函数
    可以通过与结构对象一起访问键来访问结构的各个字段。AccessingIndividual-语法:keystructure-name参数   - "key"是结构中的键值,"structure-name"是作为相应关键字的结构。返回值 - 将返回与键关联的值。以下程序显示了有关如何使用它的示例。AccessingI......
  • 无涯教程-Clojure - struct-map函数
    通过显式定义将哪些值分配给结构中的哪些键,此函数用于将值专门分配给键值。struct-map-语法(struct-mapstructnamekeynvaluen….)参数   - "structname"是要赋予结构的名称,"keyn和valuen"是需要分配给该结构的键值。返回值 - 返回一个结构对象,其值映射......
  • 无涯教程-Clojure - defstruct函数
    该函数用于定义所需的结构。defstruct-语法(defstructstructnamekeys)参数   - "structname"是要赋予结构的名称,"keys"是需要作为结构一部分的键。返回值 - 返回结构对象。defstruct-示例以下程序显示了有关如何使用它的示例。(nsclojure.examples.......
  • 无涯教程-Clojure - vary-meta函数
    返回与原始对象具有相同类型和值的对象,但具有组合的元数据。vary-meta-语法(vary-metaobjnew-meta)参数   - 'obj'是要检查是否有任何元数据与之关联的对象,"new-meta"是需要与对象关联的元数据值。返回值 -返回与原始对象具有相同类型和值的对象,但具有组合......
  • 无涯教程-Clojure - meta-with函数
    此函数用于定义任何对象的元数据映射。meta-with-语法(with-metaobjmapentry)参数   - 'obj'是需要与元数据关联的对象,"mapentry"是需要与对象相关联的元数据。返回值 - 返回与obj具有相同类型和值的对象,并以mapentry作为其元数据。meta-with-示例(nscl......
  • 无涯教程-Clojure - meta函数
    此函数用于查看是否有任何元数据与对象相关联。meta-语法(metaobj)参数   - 'obj'是要检查是否有任何元数据与之关联的对象。返回值 - 返回obj的元数据,如果没有元数据,则返回nil。meta-示例(nsclojure.examples.example(:gen-class))(defnExample[......
  • 无涯教程-Clojure - not-any?函数
    如果集合中值的任何谓词在逻辑上为true,则返回false,否则返回true。not-any?-语法(not-any?p1col)参数   - 'p1'是需要测试的pattern。"col"是需要测试的值的集合。返回值 - 如果集合中值的任何断言在逻辑上为true,则返回false,否则返回true。not-any?-示例......
  • 无涯教程-Clojure - some函数
    返回值集合中x的some第一个逻辑真值。some-语法(somep1col)参数   - 'p1'是需要测试的断言, "col"是需要测试的值的集合。返回值 - 如果断言对于每个值都为true,则返回true,否则为false。some-示例(nsclojure.examples.example(:gen-class))(defnE......
  • 无涯教程-Clojure - every-pred函数
    接受一组断言,并返回一个函数"f",如果所有组成断言针对所有参数返回逻辑真值,则返回true,否则返回false。every-pred-语法(every-predp1p2..pn)参数  -  'p1p2...pn'是需要测试的所有断言的列表。every-pred-示例(nsclojure.examples.example(:gen-clas......