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

无涯教程-Clojure - commute函数

时间:2023-10-29 17:31:29浏览次数:43  
标签:Clojure 示例 counter 无涯 commute println clojure change

通勤还用于更改引用类型的值,就像alter和ref-set一样,唯一的区别是,这也需要放在" dosync"块中。

commute - 语法

(commute refname fun)

参数      -'refname'是保存参考值的变量的名称。 "fun"是用于更改引用类型的值的函数。

返回值  - 引用及其相应的新值。

commute - 示例

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

(ns clojure.examples.example
   (:gen-class))
(defn Example []
   (def counter (ref 0))
   
   (defn change [counter]
      (dosync
         (commute counter inc)))
   (change counter)
   (println @counter)
   
   (change counter)
   (println @counter))
(Example)

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

1
2

参考链接

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

标签:Clojure,示例,counter,无涯,commute,println,clojure,change
From: https://blog.51cto.com/u_14033984/8081098

相关文章

  • 无涯教程-Clojure - alter函数
    此函数用于安全地更改引用类型的值,它在线程中运行,该线程不能被另一个进程访问,这就是为什么该命令始终需要与"dosync"方法相关联的原因。其次,要更改引用类型的值,需要调用一个函数以对该值进行必要的更改。alter-语法(alterrefnamefun)参数   - 'refname'是保存参......
  • 无涯教程-Clojure - dosync函数
    在包含表达式和任何嵌套调用的事务中运行表达式,如果没有任何线程在该线程上运行,则启动事务,任何未捕获的异常都将中止事务,并退出dosync。dosync-语法(dosyncexpression)参数   - "expression"是一组表达式,将出现在dosync块中。返回值 -无。dosync-示例以下......
  • 无涯教程-Clojure - ref函数
    这用于创建参考值。创建参考值时,有一个提供验证器函数的选项,该函数将验证创建的值。ref-语法(refxoptions)参数   - "x"是需要提供给参考的值,"options"是可以提供的一组选项。返回值- 引用及其对应的值。ref-示例以下程序显示了有关如何使用它的示例。(......
  • 无涯教程-Clojure - agent-error函数
    如果代理失败,则返回在代理的异步操作期间抛出的异常,如果代理没有失败,则返回nil。agent-error-语法(agent-erroragentname)参数   - "agentname"是应该为其设置agent-error函数的代理。返回值 - 如果代理失败,则返回在代理的异步操作过程中引发的异常。如果代......
  • 无涯教程-Clojure - Adding a New Key to the Structure函数
    由于结构是不可变的,因此可以将另一个键添加到结构中的唯一方法是创建新结构。示例(nsclojure.examples.example(:gen-class))(defnExample[](defstructEmployee:EmployeeName:Employeeid)(defemp(struct-mapEmployee:EmployeeName"Learnfk":Employeei......
  • 无涯教程-Clojure - send-off函数
    在某些情况下,为代理分配了实际上是阻止的函数。一个简单的示例是,考虑您正在从本质上是阻塞的文件中读取内容。send-off-语法(sendagentnamefunctionvalue)参数   - "agentname"是将发送函数重定向到的代理,"function"用于确定更改代理价值的方式,"value"是传递......
  • 无涯教程-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.......