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
| (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. | |
| # } |
| $ clj -Sdeps '{:deps {org.clojure/tools.nrepl {:mvn/version "0.2.12"}}}' | |
| Clojure 1.9.0 | |
| user=> (use '[clojure.tools.nrepl.server :only (start-server stop-server)]) | |
| nil | |
| user=> (defonce server (start-server :port 7888)) | |
| #'user/server | |
| ;; now connect to port 7888. there's probably a way to do this in one line. |