• Stars
    star
    204
  • Rank 190,832 (Top 4 %)
  • Language
    Clojure
  • License
    Eclipse Public Li...
  • Created about 3 years ago
  • Updated 12 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Practice Clojure using Interactive Programming in your editor

Rich 4Clojure

Practice Clojure using Interactive Programming in your editor.

Rich 4Clojure

Welcome to the Rich Comment Form (RCF) port of 4Clojure! ❤️

What it is

  1. A repository that lets you learn and practice Clojure, directly from the comfort of a Clojure REPL enhanced editor. (Even from your web browser, With zero installs, if you like.)
  2. A ”copy” of the now closed 4clojure.com site. It served us so wonderfully well!

Anyway, if you have come here to practice Clojure, you are at the right place!

How it works

You solve programming problems using Clojure and your editor of choice. The problems are designed in increasing difficulty levels. You can use it to take your first baby steps in the language and also to hone your Clojure skills.

Get started

To get to where you can start solving problems there are basically two alternatives:

  1. Use your machine.
    1. With Calva
    2. With some other editor with Clojure abilities
  2. Using Calva in your browser, powered by (Gitpod).

On your machine

This option can be easy, if you have Java and the Clojure tools installed and you know how to work with Clojure projects in your editor. It can also be a bit cumbersome if you don't. (In this case, I suggest you use Gitpod first and have some fun with the 4Clojure problems before you invest the time to figure out how to install the things.)

Once you have Java and the Clojure tools installed:

  1. Clone this repo to your machine.

If you are using VS Code, install Calva and follow the same instructions as for the Gitpod option above, from step 2 and on.

If you are using some other editor:

  1. Open the project in your Clojure-enabled editor.
  2. Start the project REPL and connect it to your editor session (Calva Jack-in).
  3. Open doc/INSTRUCTIONS.md to find out how to use Rich 4Clojure to practice Clojure.

Calva in Gitpod - Zero installs!

This repository is prepared for Gitpod such that both the Clojure tools and Calva are installed.

That means you can start training Clojure like so by opening https://gitpod.io/#https://github.com/PEZ/rich4clojure in your web browser.

Open in Gitpod

It sometimes takes quite a while (even 5+ minutes) for the environment to be prepared. Grab some coffee. 😄

Then you will see VS Code in your browser! And the instructions for how to use Rich 4Clojure will be opened for you. The instructions also contains information for what to do if you are new to Clojure and/or Calva.

OK, so what is Gitpod?

Gitpod is a development environment that runs in your web browser. It uses VS Code. You can open any GitHub/GitLab/Bitbucket repository in the Gitpod development environment by prepending the repository URL with https://gitpod.io/#. That's how this repository's Gitpod URL is constructed:

https://gitpod.io/#https://github.com/pez/rich4clojure

See https://gitpod.io for the full story.

What about the name?

The name, Rich 4Clojure, comes from the fact that it relies on Rich Comments and also uses a test utility called RCF which is building on the same philosophy. Also, reading it like ”rich forclosure”, haha (or something)!

Work in progress

This is an early version from a quite automated translation of the original problems. There'll be dragons. Please consider filing issues, starting discussions, or chat me up on the Clojurian's Slack (I'm @pez, there).

PR:s are also welcome. If it is the content of a particular problem you want to suggest changes for, edit the etc/problems.edn file.

Quirks

I'll collect known/discovered quirks here if they are show stoppers.

Zero install failing

The Gitpod option can fail installing (I know, the irony) the Calva extension if you have adblockers/etcetera active on the Gitpod site. See Issue #9 for clues and workarounds.

Support the project

Consider starring ⭐ this repository, pretty please. 🙏

Please also consider contributing. Issues and pull requests are welcome. Right now the ”other editor” instructions can improve greatly, especially with Editor X configuration added to this repository. Please consider sending PRs with instructions and settings for your favorite editor.

The Discussions tab is also there for us to discuss both the project and solutions.

If you want to contrubute with problems, that is also super welcome. I suggest you start that with adding it as a suggestion in Discussions. Then, if we agree the problem should be added, add it as a PR to the etc/problems.edn file, and I will generate the files and gists from it. (Until I've set up a CI/CD pipeline.)

If you want to encourage my work with this project you are welcome to sponsor me:

See also

  • 4ever-clojure – A web based ”always up” copy of the original 4Clojure. It has listings of all working solutions that that were submitted to the original site.

More Repositories

1

rn-rf-shadow

An example project to get you started with React Native using shadow-cljs in 3 minutes
Clojure
359
star
2

SketchDistributor

Sketch plugin that distributes selected objects vertically or horizontally with a given spacing
Shell
355
star
3

SketchSeparateShapes

A Sketch-app plugin that does a ”boolean” separate operation on two selected shapes. Like divide in Pathfinder in Adobe Illustrator.
JavaScript
166
star
4

clerk

In-page navigation (scrolling) for ClojureScript SPAs.
Clojure
71
star
5

clojure-get-started-mini

A Clojure Get Started mini project template
Clojure
35
star
6

taplet

Clojure/ClojureScript utilities for tapping things. let> macro, and #t reader tag
Clojure
32
star
7

GWT-Relative-Time

Bringing timestamps for humans to your GWT client
Java
24
star
8

reagent-bidi-accountant-example

Demonstrating a client side routing recipe for reagent projects
Clojure
23
star
9

shadow-w-backend

A tiny example project for setting up development using nREPL and shadow-cljs.
Clojure
20
star
10

scad-clj-workflow

Interactive 3D Modeling with Clojure
Clojure
19
star
11

FlexGauge

A standalone Gauge component for Flex 4
ActionScript
19
star
12

clojure-clr-starter

A Dockerized mini-project for testing ClojureCLR
Clojure
18
star
13

get-started-with-clojure

Learn Clojure and Interactive Programming – Zero install
15
star
14

shadow-bare-bones

A mini-project to quickly get started with ClojureScript for hacking on a browser app
Clojure
14
star
15

js2clj2js

A demo about being cautious with clj->js and js->clj
Clojure
12
star
16

clojure-exercism-template

Learn more Clojure and Interactive Programming with Exercism in the browser
Dockerfile
11
star
17

wally-example

An example project for end to end testing with Wally, a Clojure Wrapper for Playwright
Clojure
10
star
18

pirate-lang

Zero Install Calva + Gitpod + VNC + deps.edn demo project
Clojure
9
star
19

backseat-driver

The Hackable VS Code AI Assistant
Clojure
8
star
20

x-meta-image

REPL Playground for adding back article info to links shared on X/Twitter
Clojure
7
star
21

awesome-krell-project

A ClojureScript React Native (cljsrn) Example Project using Krell
Java
7
star
22

Sanskrit

Tore Darell's Sanskrit with some richer formatting support
JavaScript
6
star
23

on-the-code-again-eratosthenes

Clojure Eratosthenes with On The Code Again and PEZ
Clojure
6
star
24

Bots

My Robocode Bots
Java
6
star
25

deps-edn-figwheel

An attempt at a skeleton for building Clojurescript apps with Figwheel and Clojure CLI
Clojure
5
star
26

paste-replaced

A VS Code extension for pasting text replaced using configurable regular expressions.
Clojure
5
star
27

shadow-portal

A template project for using shadow-cljs and Portal together
Clojure
4
star
28

metronomic

iPhone metronome app
Objective-C
4
star
29

london-clojurians-joyride

Slides and materials for the London Clojurians Meetup about Joyride
Clojure
4
star
30

joyride-aoc-2022

Script VS Code to solve Advent of Code this year
Clojure
3
star
31

a-quil-workflow

An example project for playing with Quil in the REPL
Clojure
3
star
32

Flex4GroupIcon

A Flex 4 component for rendering avatars from a list with URLs
ActionScript
3
star
33

prettier-plugin-clojure

An (almost) indentation-only, non-configurable, Prettier Plugin for Clojure and ClojureScript (and any sufficiently similar implementations).
Clojure
3
star
34

ghost-chase-condition

Chasing a performance-eating ghost down the JVM rabbit hole
Java
2
star
35

wexio-lambda-sessions

”Slides” for Wexio Lambda Sessions Clojure presentation May 6 2021
Clojure
2
star
36

clojure-zero

A minimal Clojure project, to fill with your own code. Ready for use in the browser with full IDE (VS Code + Calva) support
Clojure
2
star
37

black-and-gold

Rust
2
star
38

Mobile-Sharer

Plugging a hole in the Facebook for iPhone app
Objective-C
2
star
39

VotingCattleCaptions

Captions for Message to the Voting Cattle, by Larken Rose
1
star
40

SketchPluginShortcuts

An inventory of Sketch plugin shortcuts
CSS
1
star
41

Doodulum

Playing with pendulum physics in Flash
JavaScript
1
star
42

Three20Issue594

Exposing app crashing introduced by dev branch 1.0.6
Objective-C
1
star
43

TreasureHunt

Objective-C
1
star
44

clojure-java

Java
1
star
45

arkiv-skolplattformen

TypeScript
1
star
46

Sandy3DGallery

An experiment with using Sandy3D for a Cooliris inspired Flickr Gallery
JavaScript
1
star
47

forgets

JavaScript
1
star
48

linkedin-paste-image

JavaScript
1
star
49

Mini-Collectors

For collectors of LEGO Minifigures
Objective-C
1
star
50

quil-cljs-calva-template

A basic `lein new quil` project with Calva dependencies added
Clojure
1
star
51

clojurescript-reactive-spa-scroll-restore-example

A scroll restore recipe for history navigation scroll restoration in cljs reactive web apps
Clojure
1
star
52

minimal-reveal-deps

Clojure
1
star
53

seatbelt

A test runner for your VS Code extensions and/or Joyride scripts.
Clojure
1
star
54

my-first-macroquad-game

Rust
1
star
55

magick-pango-babashka

A Docker image to power your picture + text compostions
Dockerfile
1
star