This post uses the excellent Ammonite REPL for Scala REPL.
Thank you, Li Haoyi, for building it!
This post uses the excellent Ammonite REPL for Scala REPL.
Thank you, Li Haoyi, for building it!
| ;; missionary solution to petrol pump example by Stephen Blackheath and Anthony Jones, ISBN 978-1633430105 | |
| ;; huanhulan's demo : [live](https://huanhulan.github.io/petrol_pump), [code](https://github.com/huanhulan/petrol_pump) | |
| (ns pump | |
| (:refer-clojure :exclude [first]) | |
| (:require [missionary.core :as m]) | |
| (:import missionary.Cancelled)) | |
| (defn rising | |
| "A transducer that outputs `nil` when the input switches from logical false to logical true." |
| ;; UPD hey, I'm not sure now if those zones are correct throughout the year | |
| ;; see this https://www.creativedeletion.com/2015/01/28/falsehoods-programmers-date-time-zones.html | |
| ;; Sorry for misleading you | |
| [{:option/value "Pacific/Tarawa" :option/label "(GMT +12:00) Tarawa"} | |
| {:option/value "Pacific/Auckland" :option/label "(GMT +12:00) New Zealand Time"} | |
| {:option/value "Pacific/Norfolk" :option/label "(GMT +11:00) Norfolk Island (Austl.)"} | |
| {:option/value "Pacific/Noumea" :option/label "(GMT +11:00) Noumea, New Caledonia"} | |
| {:option/value "Australia/Sydney" :option/label "(GMT +10:00) Australian Eastern Time (Sydney)"} | |
| {:option/value "Australia/Queensland" :option/label "(GMT +10:00) Australian Eastern Time (Queensland)"} | |
| {:option/value "Australia/Adelaide" :option/label "(GMT +9:30) Australian Central Time (Adelaide)"} |
| (require '[meander.epsilon :as m]) | |
| (m/rewrite (read-string (slurp "project.clj")) | |
| (defproject _ _ . !key !value ...) | |
| (m/cata [:DEPS_EDN (m/map-of !key !value)]) | |
| [:DEPS_EDN {:dependencies ?dependencies | |
| :profiles ?profiles | |
| :source-paths !paths | |
| :resource-paths !paths}] |
| I was drawn to programming, science, technology and science fiction | |
| ever since I was a little kid. I can't say it's because I wanted to | |
| make the world a better place. Not really. I was simply drawn to it | |
| because I was drawn to it. Writing programs was fun. Figuring out how | |
| nature works was fascinating. Science fiction felt like a grand | |
| adventure. | |
| Then I started a software company and poured every ounce of energy | |
| into it. It failed. That hurt, but that part is ok. I made a lot of | |
| mistakes and learned from them. This experience made me much, much |
Hello Friends,
This elf begging to climb onto the web for Christmas began as a personal email, a review of Paul Graham's little Lisp Bel. He sprouted arms, legs, and in gingerstyle ran away. Arms for symbols, legs for conses: these primitives are the mark a Lisp — even more so than the parenthesis. What do we get when we remove these foundation stones: naming and pairing?
No pairs. No cons. No structure. Unordered. Chaos. Eve, a beautifully incomplete aspect oriented triple store. No need for legs when you can effortlessly transport to your destination. Lazy. Pure. Here and now, a retrospective.
No symbols. No names. No variables. Combinators. Forth. No need for arms when you can effortlessly push and pop your stack. No words. A world without words. Virtual worlds. Virtual reality. Space. Time. Motion. Action. Kinetic Programming, a proposal.
I apologize in advance. Checking my pocketwatch, I see I haven't t
| (ns ordering) | |
| ;;We want to pack some information along with | |
| ;;our functions so that when our interpreter picks them | |
| ;;up, we can determine if the function should be applied | |
| ;;directly as a comparator, or if we need to "lift" | |
| ;;it into the comparator domain. | |
| (defn ordering? [x] (get (meta x) :ordering)) | |
| ;;convenience macro to help us create functions with | |
| ;;ordering specified in meta |