Programming languages 您试图使代码功能化的所有方法是什么?

Programming languages 您试图使代码功能化的所有方法是什么?,programming-languages,concurrency,functional-programming,Programming Languages,Concurrency,Functional Programming,因此,您可以在将来轻松地使程序并发。我的重点是使项目不可变。不可变对象允许您比“线程安全”对象更容易地推理多线程代码。该对象有一个可见状态,可以在线程之间传递,而无需任何同步。它去掉了多线程编程的思想 如果您感兴趣,我已经发表了很多关于不可变对象的工作,特别是代码库上的不可变集合。该项目的名称是。在收集区我有 不可变集合 不变映射 不可变树 不可变链接列表 不可变数组 不可变粘性 不可变队列 还有一个附加的垫片层(CollectionUtility),它将生成实现BCL接口(如IList和I

因此,您可以在将来轻松地使程序并发。

我的重点是使项目不可变。不可变对象允许您比“线程安全”对象更容易地推理多线程代码。该对象有一个可见状态,可以在线程之间传递,而无需任何同步。它去掉了多线程编程的思想

如果您感兴趣,我已经发表了很多关于不可变对象的工作,特别是代码库上的不可变集合。该项目的名称是。在收集区我有

  • 不可变集合
  • 不变映射
  • 不可变树
  • 不可变链接列表
  • 不可变数组
  • 不可变粘性
  • 不可变队列
还有一个附加的垫片层(CollectionUtility),它将生成实现BCL接口(如IList和ICollection)的包装器对象。它们不能完全实现接口,因为它们是不可变的,但所有可能的方法都已实现


包括单元测试在内的源代码(C#)也可以在网站上找到

我专注于使项目不可变。不可变对象允许您比“线程安全”对象更容易地推理多线程代码。该对象有一个可见状态,可以在线程之间传递,而无需任何同步。它去掉了多线程编程的思想

如果您感兴趣,我已经发表了很多关于不可变对象的工作,特别是代码库上的不可变集合。该项目的名称是。在收集区我有

  • 不可变集合
  • 不变映射
  • 不可变树
  • 不可变链接列表
  • 不可变数组
  • 不可变粘性
  • 不可变队列
还有一个附加的垫片层(CollectionUtility),它将生成实现BCL接口(如IList和ICollection)的包装器对象。它们不能完全实现接口,因为它们是不可变的,但所有可能的方法都已实现


包括单元测试在内的源代码(C#)也可以在网站上找到

不要使用成员变量或全局变量。使用函数/方法的本地堆栈。当一个方法只使用内部作用域变量和调用参数,并使用out/inout/reference参数或返回值返回所有信息时,它是功能性的。

不要使用成员变量或全局变量。使用函数/方法的本地堆栈。当一个方法只使用内部作用域变量和调用参数,并使用out/inout/reference参数或返回值返回所有信息时,它是功能性的。

I主要使用Java编写程序。我耐心地等待有一天闭包将被添加到语言中。但是,由于我仍然停留在Java1.4.2上,即使添加了它们,这对我来说也不会持续很长时间


也就是说,我主要的“功能性”编程方式是大量使用“final”关键字。我尽量使尽可能多的类是完全不可变的,其余的类则明确区分什么是暂时的,什么是不可变的。

我主要用Java编程。我耐心地等待有一天闭包将被添加到语言中。但是,由于我仍然停留在Java1.4.2上,即使添加了它们,这对我来说也不会持续很长时间


也就是说,我主要的“功能性”编程方式是大量使用“final”关键字。我尝试让尽可能多的类是完全不可变的,其余的类则明确区分什么是瞬时的,什么是不可变的。

使一切都是异步的。 使用不可变的对象、消息等。
通过队列进行通信。

使所有内容都异步。 使用不可变的对象、消息等。
通过队列进行交流。

这里有一个关于rubyconf 2008的话题,主要是以ruby为中心的,但有几个概念仍然有效


下面是关于rubyconf 2008的一个话题,主要是以ruby为中心的,但有几个概念仍然有效


我可以看到MQ是如何帮助并发的,但这真的起作用了吗?没错,它不起作用,但它有助于并发,这是我理解的主要目标。也许我错了,但事实并非如此。我可以看出MQ是如何帮助并发的,但这真的起作用了吗?你是对的,它不起作用,但它有助于并发,这是我理解的主要目标。也许我错了,但事实并非如此。你没有涵盖所有内容:[……]不要使用I/O函数或返回随机值的函数等。基本上,不要使用有副作用的函数。你没有涵盖所有内容:[……]不要使用I/O函数或返回随机值的函数等。基本上,不要使用有副作用的函数。+1表示“最终结果”-不变性是你的朋友。此外,如果您使用一种函数式JVM语言(例如Clojure或Scala):-)+1表示“最终”,则不需要等待闭包,不变性是您的朋友。另外,如果您使用一种功能性JVM语言(例如Clojure或Scala),则无需等待闭包:-)