November 2017
Intermediate to advanced
670 pages
17h 35m
English
Let's see how Gleam processes collections. The input we'll use is a collection of lines that comprises words in the /etc/paths file:
$ cat /etc/paths/usr/local/bin/usr/bin/bin/usr/sbin/sbin
Gleam reads the file content as lines and feeds each line into the flow. From this, it creates the stream through which the functions Map and Reduce are called to count the number of occurrences of each word:
package mainimport ( "os" "github.com/chrislusf/gleam/flow")func main() { flow.New().TextFile("/etc/paths").Partition(2).FlatMap(` function(line) return line:gmatch("%w+") end `).Map(` function(word) return word, 1 end `).ReduceBy(` function(x, y) return x + y end `).Fprintf(os.Stdout, "%s,%dn").Run()}
Here's the output ...