Advertisement
pcwizz

Untitled

Nov 7th, 2014
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.75 KB | None | 0 0
  1. func activeEmails(emails es)(emails){
  2.     length := len(es)
  3.     switch length{
  4.         case 0:
  5.             return nil
  6.         case 1:
  7.             return emails.Active ? emails:nil
  8.         default:
  9.             fchan := make(chan emails, 2)
  10.             f := func (emails slice){
  11.                 output := []
  12.                 for i : range slice {
  13.                     if (slice[i].Active){
  14.                         output = append(output, slice[i])
  15.                     }
  16.                 }
  17.                 fchan <- output
  18.             }
  19.             half := length/2
  20.             go f(es[0:half])
  21.             go f(es[half:length])
  22.             f1 <- fchan
  23.             f2 <- fchan
  24.             close(fchan)
  25.             return append(f1, f2...)
  26.     }
  27. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement