作者sbrhsieh (sbr)
看板PLT
標題Re: [問題] Scala 的 Covariant/Contravariant/Inv …
時間Wed Mar 18 19:23:59 2009
※ 引述《godfat (godfat 真常)》之銘言:
: : 我發現我沒有辦法寫出一個 showValue method 可以讓我單純地把任一個 Value
: : instance 所持有的 value 輸出,這是我欠缺某觀念,所以我寫不出來?還是?
: : 這一點是我不滿意 scala 關於 subtyping variance 語法的原因之一。
: 雖然可能不是你想的那樣,不過:
: class Value[+T](init:T) {
: private val x:T = init
: def get:T = { x }
: def set[U >: T](x:U): Value[U] = new Value[U](x)
: }
: def showValue(obj:Value[Any]) {
: println(obj.get);
: }
: 這邊的重點大概是,value 必須是 immutable 的。
: 至於這樣效能會不會很差,也許吧,我不知道 XD
: 可以參考這篇:一個 immutable 的 stack.
: http://www.scala-lang.org/node/129
: functional programming 就是盡量避免 state.
謝謝你的解說。我只是覺得有時候 Value 就不是我寫的,雖然他當初被設計成
mutable object,但是當我沒有要變更它的狀態時,我沒有辦法以我想要的方式
去使用,這讓我比較不能接受。
關於 functional programming,我自己私下有摸 Scheme 與 Erlang,剛開始很
不習慣。有空我也來摸一下 Haskell 看看。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.129.21