作者Schelfaniel (Schelfaniel)
看板java
标题Re: purely functional (原 [问题] SCJP6.0)
时间Tue Aug 4 20:51:35 2009
※ 引述《godfat (godfat 真常)》之铭言:
: 1. 如果一个 expression 的 return value 没被用上,则可以从程式中
: 完全移除,也是就是完全不呼叫。
这个有点难,像是 "印 debug 讯息" (这算 Statement? ) :QQ
: 2. referential transparency. 即 if x == y then f(x) == f(y)
f(x) = random 0..x 的话?
: 例如以上面的例子而言,如果 process1 和 process2 都不会动到
: java-object 本身的 state, 也不会动到任何共享的 state,
: 则 process1 和 process2 可以在有 side-effect 之下,
: 却仍然保有上述的 2, 3 点性质。
这很难,Java Object 内含一堆状态,
基本上要使用到 Java Object,不可能完全不动到,
除非,每一次都 clone 出来再使用,但这样效能不好,
或许会衍生出其他的问题。
所以 clojure 要基於 Java 之上,基本上应该是没可能成为
纯的函数语言了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.32.74.159