由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - use clojure data collection in java..
相关主题
一直不习惯immutability对 (im)mutability 的误解和深度理解
FP更接近人的思维有人用clj写web么?比如用luminus,ring这些框架
怎么这里这么多人学python我对为什么使用FP的理解 (补)
Haskell很难学。。1st class citizen
functional programming?王垠新文 为Java说句公道话
有没有喜欢haskell的同学functional programming 哪本书经典适合入门
FP 之我见 (长)FP的死穴还是性能
clojure和common lisp区别大么,语法上。函数式语言怎么实现常用数据结构?
相关话题的讨论汇总
话题: import话题: immutable话题: string
进入Programming版参与讨论
1 (共1页)
t**r
发帖数: 3428
1
在java里用clojure的immutable data collection, 比如persistentHashMap.
这样用好处是immutable?具体来说immutable能解决多线程的问题?
compound operation还是得自己保护吧?
package persistent;
import clojure.lang.IPersistentMap;
import clojure.lang.IPersistentSet;
import clojure.lang.IPersistentVector;
import clojure.lang.PersistentHashMap;
import clojure.lang.PersistentHashSet;
import clojure.lang.PersistentVector;
public class PersistentTest {
public static void main(String[] args) {
IPersistentMap m = PersistentHashMap.create("abc", "xyz");
m = m.assoc(1, 4); // add a new key/value pair
m = m.assoc("key", "value");
m = m.without("abc"); // remove key "abc"
System.out.println(m);

IPersistentVector v = PersistentVector.create(1, 2, 3);
v = v.assocN(0, "a string"); // change index 0
v = v.cons("should be last"); // add a string at the end
System.out.println(v);

IPersistentSet s = PersistentHashSet.create("a", "b", "c");
s = (IPersistentSet) s.cons("d"); // add d to the set
s = (IPersistentSet) ((IPersistentMap) s).without("a"); // remove an
element
s.contains("g"); // should return false
System.out.println(s);
}
}
z****e
发帖数: 54598
2
immutable就不允许你改值
你没啥好保护的,不变的东西,保护啥?
多线程并发冲突发生在同一个东西,不同的值
这个才有冲突,不变的东西,不存在冲突
1 (共1页)
进入Programming版参与讨论
相关主题
函数式语言怎么实现常用数据结构?functional programming?
现在最成熟稳定的websocket server是什么?有没有喜欢haskell的同学
一个用java写spark应用的问题FP 之我见 (长)
python: how to import a decorator?clojure和common lisp区别大么,语法上。
一直不习惯immutability对 (im)mutability 的误解和深度理解
FP更接近人的思维有人用clj写web么?比如用luminus,ring这些框架
怎么这里这么多人学python我对为什么使用FP的理解 (补)
Haskell很难学。。1st class citizen
相关话题的讨论汇总
话题: import话题: immutable话题: string