Skip to content

Instantly share code, notes, and snippets.

### Keybase proof
I hereby claim:
* I am ruurtjan on github.
* I am ruurtjan (https://keybase.io/ruurtjan) on keybase.
* I have a public key ASDrUF-JhLiWYlDnwjSHRsKzDYfQWupmAxQyB9huh-FQLAo
To claim this, I am signing this object:
@ruurtjan
ruurtjan / MatrixImplicits.scala
Created July 13, 2018 07:47
Learning linear algebra with Scala - matrix implicits sample
import VectorImplicits._
import model.{Matrix2, Vector2}
object MatrixImplicits {
implicit class ArithmeticMatrixImplicits(m: Matrix2) {
def *(m2: Matrix2): Matrix2 = ???
def *(scalar: Float): Matrix2 = ???
def determinant(): Float = ???
def changesOrientation(): Boolean = ???
@ruurtjan
ruurtjan / VectorImplicits.scala
Created July 13, 2018 07:48
Learning linear algebra with Scala - vector implicits sample
import MatrixImplicits._
import model.{Matrix2, Vector2}
object VectorImplicits {
implicit class ArithmeticVectorImplicits(v: Vector2) {
def +(v2: Vector2): Vector2 = ???
def *(scalar: Float): Vector2 = ???
def *(m: Matrix2): Vector2 = ???
def isLinearlyDependent(v2: Vector2): Boolean = ???
@ruurtjan
ruurtjan / Kafka-default-partitioner.java
Created October 31, 2018 09:58
Kafka default partitioner
return Utils.toPositive(Utils.murmur2(keyBytes)) % numPartitions;
@ruurtjan
ruurtjan / functional-dsl-blog-2.scala
Created April 30, 2020 09:10
functional-dsl-blog-2.scala
sealed trait EmailFilter
final case object Always extends EmailFilter
final case class Not(filter: EmailFilter) extends EmailFilter
final case class And(left: EmailFilter, right: EmailFilter) extends EmailFilter
final case class SenderEquals(target: Address) extends EmailFilter
final case class RecipientEquals(target: Address) extends EmailFilter
final case class BodyContains(phrase: String) extends EmailFilter
@ruurtjan
ruurtjan / functional-dsl-blog-3.scala
Created April 30, 2020 09:13
functional-dsl-blog-3.scala
val always: EmailFilter = Always
val never: EmailFilter = always.negate
def senderIs(sender: Address): EmailFilter = SenderEquals(sender)
def senderIsNot(sender: Address): EmailFilter = SenderEquals(sender).negate
def recipientIs(recipient: Address): EmailFilter = RecipientEquals(recipient)
def recipientIsNot(recipient: Address): EmailFilter = RecipientEquals(recipient).negate
def senderIn(senders: Set[Address]): EmailFilter = senders.foldLeft(never)(_ || senderIs(_))
def recipientIn(recipients: Set[Address]): EmailFilter = recipients.foldLeft(never)(_ || recipientIs(_))
def bodyContains(phrase: String): EmailFilter = BodyContains(phrase)
def bodyDoesNotContain(phrase: String): EmailFilter = BodyContains(phrase).negate
@ruurtjan
ruurtjan / functional-dsl-blog-4.scala
Created May 1, 2020 09:47
functional-dsl-blog-4.scala
sealed trait EmailFilter { self =>
def &&(that: EmailFilter): EmailFilter = EmailFilter.And(self, that)
def ||(that: EmailFilter): EmailFilter = (self.negate && that.negate).negate
def negate : EmailFilter = EmailFilter.Not(self)
}
@ruurtjan
ruurtjan / functional-dsl-blog-5.scala
Created May 22, 2020 09:09
functional-dsl-blog-5.scala
object Original {
def flatMap[A, B](l: List[A], f: A => List[B]): List[B] = ???
def flatten[A](l: List[List[A]]): List[A] =
Original.flatMap(l, (as: List[A]) => as)
def map[A, B](l: List[A], f: A => B): List[B] =
Original.flatMap(l, List(_))
}
@ruurtjan
ruurtjan / functional-dsl-blog-6.scala
Created May 22, 2020 09:11
functional-dsl-blog-6.scala
object MoreOrthogonal {
def flatMap[A, B](l: List[A], f: A => List[B]): List[B] =
MoreOrthogonal.flatten(MoreOrthogonal.map(l, f))
def flatten[A](l: List[List[A]]): List[A] = ???
def map[A, B](l: List[A], f: A => B): List[B] = ???
}
@ruurtjan
ruurtjan / functional-dsl-blog-1.scala
Last active May 22, 2020 12:00
functional-dsl-blog-1.scala
val filter = EmailFilter.senderIsNot(Address("me@gmail.com")) &&
EmailFilter.bodyContains("Unsubscribe")
val newsletters = emails.filter(filter.run)