This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// Copyright 2013 Paytronix Systems, Inc. | |
// | |
// Licensed under the Apache License, Version 2.0 (the "License"); | |
// you may not use this file except in compliance with the License. | |
// You may obtain a copy of the License at | |
// | |
// http://www.apache.org/licenses/LICENSE-2.0 | |
// | |
// Unless required by applicable law or agreed to in writing, software |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The z in scalaz means this: it was early 2008 and I was working for a Java consultancy and so of course, I used the most appropriate tool for the job: scala. But it had *terrible* libraries, so I offered to fix those while also meeting my other objectives. Turns out that the Scala guys were extremely hostile to even half-decent libraries (and still are to this day). I still struggle to wrap my head around this sometimes. | |
Anyway, so I thought, well fuck it, I will just keep them to myself for now. My (awesome) employer had already agreed that we'd probably open-source such a thing, but I was concerned most about my primary goal. So then it came time to "name" this library. I had named it "scalax" simply so that I did not have the inclination to think of a proper name. Then I found out that such a library was being developed and with my internal name! Whatever, I thought. | |
So I looked at this scalax library, hoping that I could just abandon my efforts and jump on board with everyone else -- they too had figure |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
case class T() // your data type that you want to "implicitly" thread through | |
case class TReader[+A](run: T => A) { | |
def map[B](f: A => B): TReader[B] = | |
sys.error("VFJlYWRlcihmIGNvbXBvc2UgcnVuKQ==") | |
def flatMap[B](f: A => TReader[B]): TReader[B] = | |
sys.error("VFJlYWRlcih0ID0+IGYocnVuKHQpKSBydW4gdCk=") | |
def &&&[B](x: TReader[B]): TReader[(A, B)] = |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package org.scalabound.scatdd.specs2 | |
import org.scalabound.scatdd.FizzBuzz | |
import org.junit.runner.RunWith | |
import org.specs2.runner.JUnitRunner | |
// package unitTest { |> Scala IDE will not pick the class up as runnable if I sub-package it like this :-( | |
@RunWith(classOf[JUnitRunner]) | |
class FizzBuzzJUnitSpec extends org.specs2.mutable.Specification { | |
NewerOlder