Skip to content

Instantly share code, notes, and snippets.

@mping
Last active May 10, 2016 18:05
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 mping/c886851ec9001aa3a6b6d5494e7ed2ea to your computer and use it in GitHub Desktop.
Save mping/c886851ec9001aa3a6b6d5494e7ed2ea to your computer and use it in GitHub Desktop.
(ns skynet.main
(:require
[co.paralleluniverse.pulsar
[core :refer :all]
[actors :refer :all]])
(:refer-clojure :exclude [promise await])
(:gen-class))
(declare skynet)
(defsfn subnet [num size div]
(loop [i 0
children []]
(if (= i div)
children
(recur
(+ i 1)
(conj children (fiber (skynet (int (+ num (* i (/ size div))))
(int (/ size div))
div)))
))))
(defsfn skynet [num size div]
(if (= size 1)
num
(->> (subnet num size div)
doall
join ;;comment if not fiber
(reduce +))
))
(defn -main []
(println (skynet 0 100 10)))
(defproject clj-actors "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.8.0"]
[co.paralleluniverse/quasar-core "0.7.5"]
[co.paralleluniverse/pulsar "0.7.6-SNAPSHOT"]
[org.clojure/core.async "0.2.374"]]
:java-agents [[co.paralleluniverse/quasar-core "0.7.5" :classifier "jdk8"]]
:jvm-opts ["-Dco.paralleluniverse.pulsar.instrument.auto=all" "-Dco.paralleluniverse.fibers.verifyInstrumentation"]
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment