Skip to content

Instantly share code, notes, and snippets.

@skelter
Created July 25, 2015 20:36
Show Gist options
  • Select an option

  • Save skelter/b6bbc3bf770ddd6cd1c0 to your computer and use it in GitHub Desktop.

Select an option

Save skelter/b6bbc3bf770ddd6cd1c0 to your computer and use it in GitHub Desktop.
basic Gorilla Repl worksheet file
;; gorilla-repl.fileformat = 1
;; **
;;; # Gorilla REPL
;;;
;;; Welcome to gorilla :-)
;;;
;;; Shift + enter evaluates code. Hit ctrl+g twice in quick succession or click the menu icon (upper-right corner) for more commands ...
;;;
;;; It's a good habit to run each worksheet in its own namespace: feel free to use the declaration we've provided below if you'd like.
;; **
;; @@
(ns wandering-winds
(:require [gorilla-plot.core :as plot]))
(def xs (range 15))
;; @@
;; =>
;;; {"type":"html","content":"<span class='clj-var'>#&#x27;wandering-winds/xs</span>","value":"#'wandering-winds/xs"}
;; <=
;; @@
xs
;; @@
;; =>
;;; {"type":"list-like","open":"<span class='clj-lazy-seq'>(</span>","close":"<span class='clj-lazy-seq'>)</span>","separator":" ","items":[{"type":"html","content":"<span class='clj-long'>0</span>","value":"0"},{"type":"html","content":"<span class='clj-long'>1</span>","value":"1"},{"type":"html","content":"<span class='clj-long'>2</span>","value":"2"},{"type":"html","content":"<span class='clj-long'>3</span>","value":"3"},{"type":"html","content":"<span class='clj-long'>4</span>","value":"4"},{"type":"html","content":"<span class='clj-long'>5</span>","value":"5"},{"type":"html","content":"<span class='clj-long'>6</span>","value":"6"},{"type":"html","content":"<span class='clj-long'>7</span>","value":"7"},{"type":"html","content":"<span class='clj-long'>8</span>","value":"8"},{"type":"html","content":"<span class='clj-long'>9</span>","value":"9"},{"type":"html","content":"<span class='clj-long'>10</span>","value":"10"},{"type":"html","content":"<span class='clj-long'>11</span>","value":"11"},{"type":"html","content":"<span class='clj-long'>12</span>","value":"12"},{"type":"html","content":"<span class='clj-long'>13</span>","value":"13"},{"type":"html","content":"<span class='clj-long'>14</span>","value":"14"}],"value":"(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14)"}
;; <=
;; @@
;; Now let us create some y values to plot. We will save them in a variable `ys`.
(def ys (map #(* % %) xs))
;; @@
;; =>
;;; {"type":"html","content":"<span class='clj-var'>#&#x27;wandering-winds/ys</span>","value":"#'wandering-winds/ys"}
;; <=
;; @@
ys
;; @@
;; =>
;;; {"type":"list-like","open":"<span class='clj-lazy-seq'>(</span>","close":"<span class='clj-lazy-seq'>)</span>","separator":" ","items":[{"type":"html","content":"<span class='clj-long'>0</span>","value":"0"},{"type":"html","content":"<span class='clj-long'>1</span>","value":"1"},{"type":"html","content":"<span class='clj-long'>4</span>","value":"4"},{"type":"html","content":"<span class='clj-long'>9</span>","value":"9"},{"type":"html","content":"<span class='clj-long'>16</span>","value":"16"},{"type":"html","content":"<span class='clj-long'>25</span>","value":"25"},{"type":"html","content":"<span class='clj-long'>36</span>","value":"36"},{"type":"html","content":"<span class='clj-long'>49</span>","value":"49"},{"type":"html","content":"<span class='clj-long'>64</span>","value":"64"},{"type":"html","content":"<span class='clj-long'>81</span>","value":"81"},{"type":"html","content":"<span class='clj-long'>100</span>","value":"100"},{"type":"html","content":"<span class='clj-long'>121</span>","value":"121"},{"type":"html","content":"<span class='clj-long'>144</span>","value":"144"},{"type":"html","content":"<span class='clj-long'>169</span>","value":"169"},{"type":"html","content":"<span class='clj-long'>196</span>","value":"196"}],"value":"(0 1 4 9 16 25 36 49 64 81 100 121 144 169 196)"}
;; <=
;; @@
(plot/list-plot ys)
;; @@
;; =>
;;; {"type":"vega","content":{"axes":[{"scale":"x","type":"x"},{"scale":"y","type":"y"}],"scales":[{"name":"x","type":"linear","range":"width","zero":false,"domain":{"data":"551d8bc7-54a5-4168-9efb-9b1e9284439f","field":"data.x"}},{"name":"y","type":"linear","range":"height","nice":true,"zero":false,"domain":{"data":"551d8bc7-54a5-4168-9efb-9b1e9284439f","field":"data.y"}}],"marks":[{"type":"symbol","from":{"data":"551d8bc7-54a5-4168-9efb-9b1e9284439f"},"properties":{"enter":{"x":{"scale":"x","field":"data.x"},"y":{"scale":"y","field":"data.y"},"fill":{"value":"steelblue"},"fillOpacity":{"value":1}},"update":{"shape":"circle","size":{"value":70},"stroke":{"value":"transparent"}},"hover":{"size":{"value":210},"stroke":{"value":"white"}}}}],"data":[{"name":"551d8bc7-54a5-4168-9efb-9b1e9284439f","values":[{"x":0,"y":0},{"x":1,"y":1},{"x":2,"y":4},{"x":3,"y":9},{"x":4,"y":16},{"x":5,"y":25},{"x":6,"y":36},{"x":7,"y":49},{"x":8,"y":64},{"x":9,"y":81},{"x":10,"y":100},{"x":11,"y":121},{"x":12,"y":144},{"x":13,"y":169},{"x":14,"y":196}]}],"width":400,"height":247.2187957763672,"padding":{"bottom":20,"top":10,"right":10,"left":50}},"value":"#gorilla_repl.vega.VegaView{:content {:axes [{:scale \"x\", :type \"x\"} {:scale \"y\", :type \"y\"}], :scales [{:name \"x\", :type \"linear\", :range \"width\", :zero false, :domain {:data \"551d8bc7-54a5-4168-9efb-9b1e9284439f\", :field \"data.x\"}} {:name \"y\", :type \"linear\", :range \"height\", :nice true, :zero false, :domain {:data \"551d8bc7-54a5-4168-9efb-9b1e9284439f\", :field \"data.y\"}}], :marks [{:type \"symbol\", :from {:data \"551d8bc7-54a5-4168-9efb-9b1e9284439f\"}, :properties {:enter {:x {:scale \"x\", :field \"data.x\"}, :y {:scale \"y\", :field \"data.y\"}, :fill {:value \"steelblue\"}, :fillOpacity {:value 1}}, :update {:shape \"circle\", :size {:value 70}, :stroke {:value \"transparent\"}}, :hover {:size {:value 210}, :stroke {:value \"white\"}}}}], :data [{:name \"551d8bc7-54a5-4168-9efb-9b1e9284439f\", :values ({:x 0, :y 0} {:x 1, :y 1} {:x 2, :y 4} {:x 3, :y 9} {:x 4, :y 16} {:x 5, :y 25} {:x 6, :y 36} {:x 7, :y 49} {:x 8, :y 64} {:x 9, :y 81} {:x 10, :y 100} {:x 11, :y 121} {:x 12, :y 144} {:x 13, :y 169} {:x 14, :y 196})}], :width 400, :height 247.2188, :padding {:bottom 20, :top 10, :right 10, :left 50}}}"}
;; <=
;; @@
;; @@
@skelter
Copy link
Author

skelter commented Jul 25, 2015

It is like this because

  1. we want to save it so we can load it, complete with the previous execution results
  2. we want it to also be executable clojure code

It isn't EDN or a data structure, which surprised me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment