Re: purely functional (原 [問題] SCJP6.0)
※ 引述《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
討論串 (同標題文章)