Skip to content

Instantly share code, notes, and snippets.

@debasishg
Created December 17, 2010 19:24
Show Gist options
  • Save debasishg/745544 to your computer and use it in GitHub Desktop.
Save debasishg/745544 to your computer and use it in GitHub Desktop.
scala> import net.debasishg.domain.trade.dsl._
import net.debasishg.domain.trade.dsl._
scala> import Trades._
import Trades._
scala> import scalaz._
import scalaz._
scala> import Scalaz._
import Scalaz._
scala> val t1 = Map("account" -> "a-123", "instrument" -> "google", "refNo" -> "r-123", "market" -> "HongKong", "unitPrice" -> "12.25", "quantity" -> "200")
t1: scala.collection.immutable.Map[java.lang.String,java.lang.String] = Map((quantity,200), (market,HongKong), (refNo,r-123), (account,a-123), (unitPrice,12.25), (instrument,google))
scala> val t2 = Map("account" -> "b-123", "instrument" -> "ibm", "refNo" -> "r-234", "market" -> "Singapore", "unitPrice" -> "15.25", "quantity" -> "400")
t2: scala.collection.immutable.Map[java.lang.String,java.lang.String] = Map((quantity,400), (market,Singapore), (refNo,r-234), (account,b-123), (unitPrice,15.25), (instrument,ibm))
scala> val trd1 = makeTrade(t1)
trd1: Option[net.debasishg.domain.trade.dsl.Trades.Trade] = Some(Trade(a-123,google,r-123,HongKong,12.25,200))
scala> trd1 ∘ lifecycle
res0: Option[Option[net.debasishg.domain.trade.dsl.Trades.RichTrade]] = Some(Some(RichTrade(Trade(a-123,google,r-123,HongKong,12.25,200),Map(TradeTax -> 490.000, Commission -> 367.5000))))
scala> val trd2 = makeTrade(t2)
trd2: Option[net.debasishg.domain.trade.dsl.Trades.Trade] = Some(Trade(b-123,ibm,r-234,Singapore,15.25,400))
scala> List(trd1, trd2) ∘∘ lifecycle
res1: List[Option[Option[net.debasishg.domain.trade.dsl.Trades.RichTrade]]] = List(Some(Some(RichTrade(Trade(a-123,google,r-123,HongKong,12.25,200),Map(TradeTax -> 490.000, Commission -> 367.5000)))), Some(Some(RichTrade(Trade(b-123,ibm,r-234,Singapore,15.25,400),Map(TradeTax -> 1220.000, Commission -> 915.0000, VAT -> 610.000)))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment