Like map
, but parallel. Like map, except f is applied in parallel.
Only useful for computationally intensive functions where the time of
fn dominates the coordination overhead
- http://clojure.com/blog/2012/05/08/reducers-a-library-and-model-for-collection-processing.html
- http://clojure.com/blog/2012/05/15/anatomy-of-reducer.html
- http://ianrumford.github.io/blog/2013/08/25/some-trivial-examples-of-using-clojure-reducers/
- http://adambard.com/blog/clojure-reducers-for-mortals/
- http://stackoverflow.com/a/33467619/294515
Delays execution of body until needed / deref’d
Update value with given fn in separate thread
- http://conj.io/store/v1/org.clojure/clojure/1.7.0/clj/clojure.core/agent/
- http://conj.io/store/v1/org.clojure/clojure/1.7.0/clj/clojure.core/send/
- http://conj.io/store/v1/org.clojure/clojure/1.7.0/clj/clojure.core/send-off/
Invokes body in new thread, when obtaining result blocks calling thread until future is realized
Returns a promise object that can be deref’d, and set, once only, with deliver.
- https://github.com/clojure/core.async
- https://swannodette.github.io/2013/07/12/communicating-sequential-processes/
- http://ku1ik.com/2015/10/12/sweet-core-async.html
- http://www.braveclojure.com/core-async/
- http://www.core-async.info/
- http://rigsomelight.com/2013/08/12/clojurescript-core-async-dots-game.html
- https://martintrojer.github.io/clojure/2013/07/07/coreasync-and-blocking-io/
- http://tech.puredanger.com/2013/07/10/rps-core-async/
- https://www.youtube.com/watch?v=enwIIGzhahw
- https://tbaldridge.pivotshare.com/
Advanced core.async operations:
- https://yobriefca.se/blog/2014/06/01/combining-and-controlling-channels-with-core-dot-asyncs-merge-and-mix/
- https://yobriefca.se/blog/2014/06/04/publish-and-subscribe-with-core-dot-asyncs-pub-and-sub/
- http://blog.lauripesonen.com/go-concurrency-patterns-in-core-async-pipelines-and-cancellation/
- http://stuartsierra.com/2013/12/08/parallel-processing-with-core-async
- http://aleph.io/
- http://ideolalia.com/aleph/literate.html
- https://github.com/ztellman/aleph
- https://github.com/ztellman/manifold
- http://www.w3.org/TR/rdf11-primer/
- http://www.w3.org/TR/rdf11-concepts/
- http://www.w3.org/TR/rdf-schema/
- https://en.wikipedia.org/wiki/Triplestore
- https://www.youtube.com/watch?v=FvGndkpa4K0
- http://www.w3.org/TR/sparql11-overview/
- http://www.w3.org/TR/sparql11-query/
- http://www.w3.org/TR/sparql11-protocol/
- http://www.cambridgesemantics.com/semantic-university/sparql-by-example
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX sdef: <http://statistics.data.gov.uk/def/>
PREFIX sg: <http://statistics.data.gov.uk/def/statistical-geography#>
PREFIX sid: <http://statistics.data.gov.uk/id/statistical-geography/>
CONSTRUCT {
?item rdfs:label ?id ;
sg:officialName ?name ;
sg:hasExteriorLatLongPolygon ?poly .
}
WHERE {
?item a sdef:statistical-geography ;
rdfs:label ?id ;
sg:officialname ?name;
sg:parentcode sid:E12000007 ;
sg:hasExteriorLatLongPolygon ?poly .
}
ORDER BY ASC(?id)
Query for thi.ng/fabric: (doesn’t include sdef:statistical-geography
and sg:parentcode
sub-queries, since we didn’t use those in the
CONSTRUCT
phase of the above query:
{:prefixes {"rdf" "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
"sdef" "http://statistics.data.gov.uk/def/"
"sg" "http://statistics.data.gov.uk/def/statistical-geography#"
"sid" "http://statistics.data.gov.uk/id/statistical-geography/"}
:q [{:where [[?item "rdfs:label" ?id]
[?item "sg:officialName" ?name]
[?item "sg:hasExteriorLatLongPolygon" ?poly]]}]
:select [?id ?name ?poly]
:order ?id}
- http://dbpedia.org/sparql (choose HTML output)
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbr: <http://dbpedia.org/resource/>
SELECT DISTINCT ?p
WHERE {
?p a dbo:MusicalArtist ;
dbo:genre dbr:Techno ;
dbo:birthPlace ?bp .
?bp dbo:country dbr:Germany
}
- http://linkeddatabook.com/editions/1.0/
- http://learningsparql.com/
- https://cse.google.com/cse/publicurl?cx=008280912992940796406:txxz39lfzo0&q=Linked%20Data
- http://protege.stanford.edu/
- http://jena.apache.org
- http://rdf4j.org/
- https://en.wikipedia.org/wiki/List_of_subject-predicate-object_databases
- http://neo4j.com/
- http://clojureneo4j.info/
- http://graphdatabases.com/ (free e-book)
- http://it-ebooks.info/book/4656/ (free e-book)
- http://www.opencypher.org/
- http://neo4j.com/developer/cypher/
- https://github.com/tinkerpop/gremlin/wiki
<script async defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=INIT_FN"></script>
Replace YOUR_API_KEY & INIT_FN
- https://developers.google.com/maps/documentation/javascript/
- https://developers.google.com/maps/documentation/javascript/shapes
- London borough boundary shapes from ONS SPARQL endpoint (see query above)
- http://data.london.gov.uk/dataset/average-house-prices-borough (Each house sale in London 1995-2014, 190MB CSV, link near bottom of page)
(require '[ws-ldn-2.core])
(in-ns 'ws-ldn-2.core)
(launch)