It's now here, in The Programmer's Compendium. The content is the same as before, but being part of the compendium means that it's actively maintained.
;; Inspired by George Jahad's version: http://georgejahad.com/clojure/debug-repl.html | |
(defmacro local-bindings | |
"Produces a map of the names of local bindings to their values." | |
[] | |
(let [symbols (map key @clojure.lang.Compiler/LOCAL_ENV)] | |
(zipmap (map (fn [sym] `(quote ~sym)) symbols) symbols))) | |
(declare *locals*) | |
(defn eval-with-locals |
# -*- coding: utf-8 -*- | |
import json | |
import os | |
from flask import Flask, request, g, session, redirect, url_for, Response | |
from flask import render_template_string, render_template | |
import requests | |
from sqlalchemy import create_engine, Column, Integer, String, Text | |
from sqlalchemy.orm import scoped_session, sessionmaker |
A list of commonly asked questions, design decisions, reasons why Clojure is the way it is as they were answered directly by Rich (even when from many years ago, those answers are pretty much valid today!). Feel free to point friends and colleagues here next time they ask (again). Answers are pasted verbatim (I've made small adjustments for readibility, but never changed a sentence) from mailing lists, articles, chats.
How to use:
- The link in the table of content jumps at the copy of the answer on this page.
- The link on the answer itself points back at the original post.
(ns frontend-re-frame.core | |
(:require | |
[re-frame.core :as re-frame] | |
[reagent.core :as reagent] | |
[reitit.core :as r] | |
[reitit.coercion :as rc] | |
[reitit.coercion.spec :as rss] | |
[reitit.frontend :as rf] | |
[reitit.frontend.controllers :as rfc] | |
[reitit.frontend.easy :as rfe])) |
Let’s define a framework as any library that contains one or more functions that accept callbacks.
Web frameworks are great for beginner developers who need to get stuff done. But they ultimately force you into a corner. In most applications, experienced developers need to retain control. Libraries are better.
These resources (articles, books, and videos) are useful when you're starting to learn the language, or when you're learning a specific part of the language. This an opinionated list, no doubt. I've compiled this list from writing and teaching Clojure over the last 10 years.
- 🔴 Mandatory (for both beginners and intermediates)
- 🟩 For beginners
- 🟨 For intermediates