Like this:
# Use absolute paths, since relative paths like ~/Projects won't be expanded.
# - deps ------------------------------------------------------------------
sudo port install ninja # or brew install ninja
cargo install xargo
| ; Introduction to Clojure | |
| ; ======================= | |
| ; This note teaches you the entire syntax of Clojure in ~15 minutes. | |
| ; Clojure is a Lisp (short for LISt Processing) | |
| ; Lisp was invented in the 60s by John McCarthy and pionereed a number of ideas that are now | |
| ; commonplace in computer science, including: | |
| ; - tree data structures, |
| (defn bubble-sort-step [coll] | |
| (if-not (seq coll) | |
| coll | |
| (let [[a b & rst] coll] | |
| (if-not b | |
| coll | |
| (lazy-seq | |
| (cons (min a b) | |
| (bubble-sort-step (cons (max a b) rst)))))))) |
| (ns ui.map | |
| #?(:cljs (:require-macros [ui.map :refer [with-reagent]])) | |
| (:require [hyperfiddle.electric :as e] | |
| [hyperfiddle.electric-dom2 :as dom] | |
| [reagent.core :as r] | |
| #?(:cljs ["react" :as React]) | |
| #?(:cljs ["react-dom/client" :as ReactDom]) | |
| #?(:cljs ["react-map-gl" :as ReactMapGl]) | |
| #?(:cljs ["@mapbox/mapbox-gl-draw" :as MapboxDraw]))) |
| // Welcome to Code in Framer | |
| // Get Started: https://www.framer.com/docs/guides/ | |
| import Example from "https://framer.com/m/framer/Example.js@^1.0.0" | |
| import { Map, InfoWindow, Marker, GoogleApiWrapper } from "google-maps-react" | |
| const YOUR_GOOGLE_API_KEY_GOES_HERE = "<your API keys goes here>" | |
| const MapContainer = (props) => { |
| FROM clojure:openjdk-15-tools-deps AS builder | |
| WORKDIR /opt | |
| ADD deps.edn deps.edn | |
| RUN clj -Sdeps '{:mvn/local-repo "./.m2/repository"}' -e "(prn \"Downloading deps\")" | |
| RUN clj -e :ok | |
| COPY . . | |
| RUN clj -e :ok |
| (ns luandro) | |
| (even? 3) | |
| (apply + (filter even? (range 20))) | |
| (->> (range 20) | |
| (filter even?) |
| (defn left-pad | |
| "Left-pads inputs with prefix up to length n (just in case String.padStart stops working one day)." | |
| [n prefix input] | |
| (let [s (str input)] | |
| (str (string/join "" (repeat (- n (.-length s)) prefix)) s))) |
| (defn binary-search | |
| "Finds a value in a sorted seq in log(N) time." | |
| [coll target] | |
| (if (seq coll) | |
| (let [half (int (/ (count coll) 2)) | |
| pivot (nth coll half nil)] | |
| (if (= pivot target) | |
| pivot | |
| (if (< target pivot) | |
| (binary-search (take half coll) target) |
Like this:
# Use absolute paths, since relative paths like ~/Projects won't be expanded.
# - deps ------------------------------------------------------------------
sudo port install ninja # or brew install ninja
cargo install xargo
| # I'm no longer smart enough to learn DSLs to start my favourite language REPL. | |
| # | |
| # If anyone from Cognitect is reading this, AFAIC this stuff is the biggest barrier to Clojure adoption. | |
| # | |
| # Edit your deps.edn file: | |
| # | |
| # {:deps {org.clojure/clojure {:mvn/version "1.9.0"} | |
| # org.clojure/clojurescript {:mvn/version "1.10.339"} | |
| # ;; ...other deps. | |
| # } |