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 fp_tdd | |
import cats.Apply | |
import cats.syntax.apply._ | |
import org.scalacheck.Prop.forAll | |
import org.scalacheck.{Gen, Prop, Properties} | |
object Chapter07 extends Properties("Ch07") { | |
// ======== TODO ======== | |
// $5 + 10 CHF = $10 if rate is 2:1 |
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 fp_tdd | |
import cats.Apply | |
import cats.syntax.apply._ | |
import org.scalacheck.Prop.forAll | |
import org.scalacheck.{Gen, Prop, Properties} | |
/* | |
* Dollar と Franc で共通の Money クラスを作り equalsを引き上げた | |
* テストコードのは変更はなし |
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 fp_tdd | |
import cats.Apply | |
import cats.syntax.apply._ | |
import org.scalacheck.Prop.forAll | |
import org.scalacheck.{Gen, Prop, Properties} | |
object Chapter05 extends Properties("Ch05") { | |
// ======== TODO ======== | |
// $5 + 10 CHF = $10 if rate is 2:1 |
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 fp_tdd | |
import cats.Apply | |
import cats.syntax.apply._ | |
import org.scalacheck.Prop.forAll | |
import org.scalacheck.{Gen, Properties} | |
object Chapter04 extends Properties("Ch04") { | |
// ======== TODO ======== | |
// $5 + 10 CHF = $10 if rate is 2:1 |
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 fp_tdd | |
import org.scalacheck.Prop.forAll | |
import org.scalacheck.{Gen, Properties} | |
object Chapter03 extends Properties("Ch03") { | |
// ======== TODO ======== | |
// $5 + 10 CHF = $10 if rate is 2:1 | |
// Make "amount" private | |
// Money rounding? |
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 fp_tdd | |
import org.scalacheck.Prop.forAll | |
import org.scalacheck.Properties | |
object Chapter02 extends Properties("Ch02") { | |
// ======== TODO ======== | |
// $5 + 10 CHF = $10 if rate is 2:1 | |
// Make "amount" private | |
// Money rounding? |
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 fp_tdd | |
import org.scalacheck.Prop.forAll | |
import org.scalacheck.Properties | |
object Chapter01 extends Properties("Ch01") { | |
// ======== TODO ======== | |
// $5 + 10 CHF = $10 if rate is 2:1 | |
// Make "amount" private | |
// Dollar side effect |
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
import cats.Functor | |
import cats.syntax.functor._ | |
// hylomorphism ----------------- | |
type Algebra[F[_], B] = F[B] => B | |
type Coalgebra[F[_], A] = A => F[A] | |
def hylomorphism[F[_]: Functor, A, B]( | |
alg: Algebra[F, B], | |
coalg: Coalgebra[F, A])(seed: 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
import scala.language.higherKinds | |
import cats.data.StateT | |
import cats.free.Free | |
import cats.~> | |
import cats.instances.all._ | |
import iota.TListK.::: | |
import iota.{CopK, TNilK} | |
import Free.inject |
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
import System.Environment | |
import Simpath.Border (borders) | |
import Simpath.Edge (Edge, edge, modify) | |
import Simpath.CounterMap | |
gridEdges :: Int -> [Edge] | |
gridEdges size = upper ++ lower | |
where | |
upper = snd $ foldl (\(c, ts) n -> (c + n, ts ++ edgesAt n c)) (0, []) [1 .. size-1] | |
where edgesAt n acc = map (+ acc) [1 .. n] >>= addPair |