Skip to Content
Learning Functional Programming in Go
book

Learning Functional Programming in Go

by Lex Sheehan
November 2017
Intermediate to advanced
670 pages
17h 35m
English
Packt Publishing
Content preview from Learning Functional Programming in Go

Charge filter

Like all the other filters in the API, Charge accepts an input channel of type Order and returns an output channel of type Order.

If the order is valid, then we initialize the total to $0.00 using the  total := gc.USD{0, 0}  statement and iterate over the order's line items, executing the Add function to arrive at the order's total amount. We then pass that amount to the ChargeCard helper function to collect our money:

type Charge struct {}
func (c Charge) Filter(input chan Order) chan Order {
       output := make(chan Order)
       go func(){
              for order := range input {
                     if order.IsAuthenticated && order.IsDecrypted {
                            total := gc.USD{0, 0}
                            for _, li := range order.LineItems { total, _ = total.Add(li.PriceUSD) } ChargeCard(order.CCardNumber, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Learning Functional Programming

Learning Functional Programming

Jack Widman

Publisher Resources

ISBN: 9781787281394Supplemental Content