Skip to content

Instantly share code, notes, and snippets.

@missingfaktor
missingfaktor / gist:1153355
Created August 18, 2011 05:31
∅ from Scalaz
scala> import scalaz._
import scalaz._
scala> import Scalaz._
import Scalaz._
scala> ∅[Boolean]
res0: Boolean = false
@missingfaktor
missingfaktor / gist:1162307
Created August 22, 2011 12:54
My take on "Apples to Pears" (without subtyping)
// Ref: http://blog.xebia.com/2011/08/comparing-apples-to-pears-in-scala-or-abstract-types-to-the-rescue/
scala> trait Money[C] {
| def amount(currency: C): Double
| }
defined trait Money
scala> case class Euro(amount: Double)
defined class Euro
@missingfaktor
missingfaktor / gist:1183671
Created August 31, 2011 14:29
Some Haskell Aeson code that I found interesting
data Coord = Coord { x :: Double, y :: Double }
instance FromJSON Coord where
parseJSON (Object v) =
Coord <$>
v .: "x" <*>
v .: "y"
@missingfaktor
missingfaktor / TenOneLiners.java
Created September 1, 2011 17:49
10(?) Functional Java oneliners(?) to impress(?) your friends
// Ref: http://solog.co/scala/10-scala-one-liners-to-impress-your-friends.html
import static fj.Ord.intOrd;
import static fj.P.p;
import static fj.Show.booleanShow;
import static fj.Show.intShow;
import static fj.Show.listShow;
import static fj.Show.stringShow;
import static fj.data.List.list;
@missingfaktor
missingfaktor / gist:1194836
Created September 5, 2011 12:23
Generic Fill
scala> import collection.generic.{GenericTraversableTemplate => GTT}
import collection.generic.{GenericTraversableTemplate=>GTT}
scala> import collection.generic.{TraversableFactory => TF}
import collection.generic.{TraversableFactory=>TF}
scala> def fill[A, CC[X] <: Traversable[X] with GTT[X, CC]]
| (n: Int)(elem: => A)(tf: TF[CC]) = tf.fill(n)(elem)
fill: [A, CC[X] <: Traversable[X] with scala.collection.generic.GenericTraversab
leTemplate[X,CC]](n: Int)(elem: => A)(tf: scala.collection.generic.TraversableFa
@missingfaktor
missingfaktor / gist:1194858
Created September 5, 2011 12:32
Generic Fill. Works with arrays too.
scala> def fill[A, CC[_]](n: Int)(elem: => A)(implicit cbf:
| CanBuildFrom[Nothing, A, CC[A]]) = {
| val b = cbf()
| for(_ <- 1 to n)
| b += elem
| b.result
| }
fill: [A, CC[_]](n: Int)(elem: => A)(implicit cbf: scala.collection.generic.CanB
uildFrom[Nothing,A,CC[A]])CC[A]
@missingfaktor
missingfaktor / gist:1195311
Created September 5, 2011 15:52
Indira, Nehru, and the Roadside Romeo
import actors.Actor
case class Letter(sender: Actor, contents: String)
object Indira extends Actor {
private var n = 0
def act: Unit = loopWhile(n < 10) {
n += 1
react {
@missingfaktor
missingfaktor / ExperimentingWithIo.scala
Created September 10, 2011 13:53
Playing with Scalaz effects
import scalaz._
import Scalaz._
import effects._
object ExperimentingWithIo {
def main(args: Array[String]): Unit = {
val i1: IO[Unit] = for {
_ <- putStrLn("What's your name?")
@missingfaktor
missingfaktor / inspectfun.py
Created September 13, 2011 20:12
Python reflection magic
import inspect
def call(fun, **myArgs):
names, _, _, values = inspect.getargspec(builder)
defaults = zip(names, values)
valuesToCallWith = dict(defaults + myArgs.items())
return fun(**valuesToCallWith)
def builder(a = 0, b = 2, c = 3):
return a + b + c
@missingfaktor
missingfaktor / gist:1216355
Created September 14, 2011 11:29
Zippers
scala> val z = zipper(Stream(9, 11), 7, Stream(23, 9))
z: scalaz.Zipper[Int] = <zipper>
scala> z.shows
res164: String = [11,9] 7 [23,9]
scala> val z0 = z.tryNext
z0: scalaz.Zipper[Int] = <zipper>
scala> z0.shows