Re: [問題] Scala 的 Covariant/Contravariant/Inv …

看板PLT (程式語言與理論)作者 (sbr)時間15年前 (2009/03/18 19:24), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串16/17 (看更多)
※ 引述《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
文章代碼(AID): #19mDdIeX (PLT)
討論串 (同標題文章)
文章代碼(AID): #19mDdIeX (PLT)