Skip to content

Instantly share code, notes, and snippets.

@fatfingererr
Forked from rcarmo/chekhov.hy
Created February 18, 2017 08:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fatfingererr/e9ad55cd7b8dbdfbef97c61fb9929880 to your computer and use it in GitHub Desktop.
Save fatfingererr/e9ad55cd7b8dbdfbef97c61fb9929880 to your computer and use it in GitHub Desktop.
map-reduce in hylang
; Packed shepherd together with mincemeat for convenience
(import [mincemeat.shepherd [run_server]])
; chunker is temporarily broken
;(defn chunker [gen size]
; (let [[gen (iter gen)]
; [chunk []]
; (try
; (while True
; (for [_ (xrange size)]
; (.append chunk (.next gen))
; (yield chunk)
; (setv chunk [])))
; (catch [e StopIteration]
; (if chunk
; (yield chunk))))))
(def datasource (dict (enumerate (open "chekhov.txt" "r"))))
(defn mapfn [k v]
(for [w (.split v)]
(yield (, (.lower w) 1))))
(defn reducefn [k vs]
(sum vs))
(print (run_server
{ "datasource" datasource
"mapfn" mapfn
"reducefn" reducefn }))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment