Fehmi'nin sorusu

60 views
Skip to first unread message

cagdas senol

unread,
Apr 21, 2014, 2:31:04 PM4/21/14
to scala-...@googlegroups.com
http://stackoverflow.com/questions/23198116/is-it-possible-to-update-fields-of-any-case-class-implementing-a-common-trait?stw=2

Fehmi böyle bir soru sormuş. Sosyal ortamlardan uzak durduğumdan buradan yazayım dedim.

Buna benzer bişi bize de lazım oldu. Dynamic trait i ile yaptım önce.
İhtiyacın olan, applyDynamicNamed methodu. 

Amma typesafe olmuyor. O sebeple vazgeçtim. 

Macroya bulaşmadan iki yol var gibi.
Cevaplarda da geçen. F-Bounded polymorphism(dhg nin cevabı) ile ya da Typeclasslarla (Lens cevabı) çözebilrsin.

Context Bound type-parametrler implicit parametreler ile mevzu çıkardığından ben F-bounded a girdim. Ama lens çözümü daha güzel.

Bunun dışında macrolarla vardır bi numaralar ama bilmediğim sular olduğundan bişi diyemeiyorum.

Çözen varsa SO yazsın heyecanla bekliyorum
--
Cagdas Senol

Fehmi Can SAGLAM

unread,
Apr 22, 2014, 2:00:24 AM4/22/14
to scala-...@googlegroups.com
Iyi ki mail kullaniyorsun yoksa dumanla Ankara'dan Istanbul'a zor valla.

Ortak bir trait oldugundan invokeDynamic ile runtime'da performans kaybi disinda sorun yasamayiz gibi geliyor bana. Yaniliyor muyum?

Daha iyi bir cozum gelmezse F-Bounded cozumu ile gitmeyi dusunuyordum ben de. Benim use case icin preUpdate fonksiyonu tanimlayip leaflerin bir kopya dondurmelerini bekleyecektim. Ama bir daha bakinca Typeclass cozumu daha esnek gibi gorunuyor.

Miles Sabin artistlik yapip LabelledGeneric ile hallederiz diyor ama henuz ortada kod goremedik.

Beklemedeyim. Bu arada bu koda ReactiveMongo extensions icin ihtiyac duydum. https://github.com/fehmicansaglam/reactivemongo-extensions

Fehmi Can
--
Bu iletiyi Google Grupları'ndaki "Scala Türkiye" grubuna abone olduğunuz için aldınız.
Bu grubun aboneliğinden çıkmak ve bu gruptan artık e-posta almamak için scala-turkiy...@googlegroups.com adresine e-posta gönderin.
Daha fazla seçenek için https://groups.google.com/d/optout adresini ziyaret edin.
Reply all
Reply to author
Forward
0 new messages