Category Archives: Scala

Monoid

Jasně si vzpomínám, jak jsme kdysi dávno na vysoké škole probírali pologrupy a monoidy a já si pomyslel: „K čemu je to dobré?“ Šlo o upřímnou otázku, nikoli o znevažování všeho, co nemá okamžité uplatnění. Zajímalo mě to, protože když jsem věděl, kde … Continue reading 

Posted in Funkcionální programování, Scala | 1 Comment

I ve Scale se dá psát rychlý generický kód za použití typeclass

Nedávno jsem tu psal o tom, jak se dá rychle vypočítat Jaccardova podobnost. Rychle bylo klíčové slova a jediná věc na které skutečně záleželo. Právě kvůli rychlosti jsem do knihovny sketches přidal verzi této rutiny (a pár dalších funkcí) specializovanou pro … Continue reading 

Posted in JVM, Scala, VM | Leave a comment

Jaccardovo tajemství – jak počítat podobnost množin pomalu, jak ji počítat rychle a jak při výpočtu podvádět

Jaccardův index podobnosti je jednoduchá funkce, která udává míru podobnosti mezi dvěma množinami. Je definována jako velikost průniku vydělená velikostí sjednocení dvou množin. J(A, B) = |A ∩ B| / |A ∪ B| Funkce je to jednoduchá. Otázka je, jak … Continue reading 

Posted in Algo, DS, Scala | 3 Comments

Generování kódu za běhu (ve Scale)

Někdy je zkrátka potřeba dynamicky generovat kód. Důvodů pro to může být mnoha: Například můžu mít nějakou formu externího doménového jazyka (DSL), který musí běžet rychle, nebo musí být staticky integrován do zbytku programu bez použití reflexe1, nebo chci provést … Continue reading 

Posted in Scala | 1 Comment

JVM: Epizoda V – Paměť vrací úder

Minule jsem psal, jak se podívat objektům pod sukně a přímo přečíst bajty v jejich hlavičkách. Už to samo o sobě jde daleko za hranice virtuálního stroje a narušuje jeho paměťovou bezpečnost. Takže komu se dělalo minule mdlo, by vůbec neměl číst … Continue reading 

Posted in Java, JVM, Paměť, Scala | Leave a comment