github.com/l3x/learn-fp-go@v0.0.0-20171228022418-7639825d0b71/4-purely-functional/ch10-monads/05_typeclasss/main.go (about)

     1  package main
     2  
     3  import (
     4      "typeclass"
     5      "fmt"
     6  )
     7  
     8  func main() {
     9      int42 := typeclass.Int(42)
    10      str42 := typeclass.String("42")
    11      fmt.Println("str42.Equals(int42):", str42.Equals(int42))
    12  
    13      int64One := typeclass.Int64(1)
    14      int64Two := typeclass.Int64(2)
    15      fmt.Println("int64Two.Sum(int64One):", int64Two.Sum(int64One))
    16  
    17      int32One := typeclass.Int32(1)
    18      fmt.Println("int32One.Sum(int64One):", int32One.Sum(int64One))
    19  
    20      float32Five := typeclass.Float32(5)
    21      fmt.Println("int32One.Sum(int64One):", float32Five.Sum(int64One))
    22  
    23      int64Slice123 := typeclass.IntSlice([]int{1, 2, 3})
    24      int64Slice234 := typeclass.IntSlice([]int{2, 3, 4})
    25      fmt.Println("int64Slice123.Sum(int64Slice234):", int64Slice123.Sum(int64Slice234))
    26  }