• Stars
    star
    268
  • Rank 153,144 (Top 4 %)
  • Language
    Clojure
  • Created about 11 years ago
  • Updated about 2 years ago

Reviews

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

Repository Details

A ClojureScript adaptation of the Clojure koans that runs purely in-browser

ClojureScript Koans Online

http://clojurescriptkoans.com

The ClojureScript Koans are a fun and easy way to get started with ClojureScript. No experience with Clojure or ClojureScript is assumed or required, and since they're run in-browser they don't require a functioning Clojure development environment.

They are adapted from the Clojure Koans, with some minor changes to accommodate the differences between Clojure and ClojureScript.

Development

You will need Leiningen.

If you wish to edit the project's stylesheets, you will need to have Sass and Compass installed. The project contains a Compass config.rb file.

Editing the Koans

The koans themselves live in the src/koans/meditations folder. For a given set, the koans variable should contain a sequence of description strings and their matching S-expressions. Within the S-expressions, any instances of :__ will be replaced by an input box. There are instances where ClojureScript's pr-str function will alter the displayed form of an expression (e.g. replacing quote characters with a (quote) expression); if this happens, you can quote the entire S-expression to have it displayed exactly as written.

If you need to define new functions for a section, add them to the fns vector. Like the koans, a function may either be a quoted S-expression or a string, and any instances of the symbol :__ will be replaced with an input field. If you wish to specify proper indentation, whitespace is maintained in the string form. In either case, syntax highlighting will automatically be applied.

If you want to create a new category of koans, you will also need to add your category to the structure in meditations.cljs.

Helper Scripts

The script folder contains a number of helpful scripts. All are designed to be run from the root project directory.

build: Does a clean recompile of the application code.

deploy: If you're hosting the site on GitHub Pages, this will deploy the latest version of your code. It merges your current branch into the gh-pages branch, generates a static copy with compiled JS/CSS, and then pushes the gh-pages branch to your default remote. See the script's source for caveats.

Related Projects

Contributing

Pull requests are encouraged!

License

The use and distribution terms for this software are covered by the Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) which can be found in the file epl-v10.html at the root of this distribution. By using this software in any fashion, you are agreeing to be bound by the terms of this license.

More Repositories

1

Theseus

An open-source iOS personal analytics tool
Objective-C
700
star
2

twine-app-builder

Automatically generate Windows and macOS versions of your Twine games, for free!
HTML
212
star
3

hubot-imessage

iMessage adapter for Hubot
AppleScript
171
star
4

cortado

Caffeine tracking for everyone
Objective-C
168
star
5

twison

A Twine 2 story format that provides JSON export
HTML
139
star
6

storyboard

A narrative engine for interactive storytelling
TypeScript
112
star
7

habit-squares

Habit tracking for lazy people
Ruby
106
star
8

fuckingblocksyntax.com

Syntax is hard.
HTML
79
star
9

Skeleton-Sass

A port of Skeleton's responsive grid framework to SASS
CSS
71
star
10

GroundKontrol

Tune your Unity game's constants using a Korg MIDI controller
C#
56
star
11

literally

Replaces occurrences of the word 'literally' with 'figuratively'. That's literally all it does.
JavaScript
47
star
12

Mobile-Safari-Inspector

Use WebKit Inspector to debug iOS web apps rendered in a native UIWebView
Objective-C
44
star
13

tinsel

Choose Your Own Adventure-style interactive fiction for touch tone phones
JavaScript
37
star
14

MTLParseAdapter

Convert your Mantle model objects to and from Parse PFObjects
Objective-C
22
star
15

whatsapplebees

The most popular Applebee's-based social network.
Objective-C
19
star
16

MWKeyboardAnimation

A UIView category to simplify animations that sync up with the UIKeyboard show/hide animation
Objective-C
19
star
17

playfab-twine

TypeScript
17
star
18

ios-3d-audio-test

Swift
16
star
19

lazerwalker-hubot-scripts

Some Hubot scripts I use to make my life easier
CoffeeScript
13
star
20

tracery-dot-app

Native desktop app for experimenting with Tracery grammars
TypeScript
12
star
21

dotfiles

Vim Script
11
star
22

dont-touch-your-face

HTML
10
star
23

prisoners-dilemma

A simple game to show off Apple's Multipeer Connectivity framework
Objective-C
9
star
24

lazerboy-pcb

6
star
25

machine-learning-rps

TypeScript
5
star
26

azure-mystery-mansion

4
star
27

geofencer

Swift
4
star
28

thumbstick

🎮 A virtual joystick for touch capable interfaces.
JavaScript
4
star
29

xoxo-closing-party

JavaScript
4
star
30

semaphore

TypeScript
3
star
31

walking-game

C#
3
star
32

storyboard-iOS

Swift reference client for the Storyboard storytelling engine
JavaScript
3
star
33

morse-keyboard

Arduino
3
star
34

poetry-ios

Swift
3
star
35

minimum-viable-webrtc

A WebRTC sample browser app + server that automatically negotiates streaming p2p video
TypeScript
3
star
36

diorama

A tool for making short narrative experiences in 3D
TypeScript
2
star
37

spatial-webrtc-test

TypeScript
2
star
38

tinsel-twison

Use Twine 2 to to create games for Tinsel
JavaScript
2
star
39

midi-tuner

JS webapp and server for MIDI variable gamefeel tuning
TypeScript
2
star
40

orbital

A Sass-based responsive grid that's out of this world
2
star
41

unity-ci-example

2
star
42

CafeAuLait

A node.js library for Remember The Milk written in CoffeeScript
CoffeeScript
2
star
43

storyboard-lang

TypeScript
2
star
44

ios-games-list

iOS games worth playing.
HTML
2
star
45

fbchan

A fully-functional web-based Facebook client that looks like 4chan.
JavaScript
1
star
46

doginternet

HTML
1
star
47

cordova-clvisit

1
star
48

TipsterJS

Yet another jQuery tooltip library
JavaScript
1
star
49

autocompete

JavaScript
1
star
50

blog

SCSS
1
star
51

electron-wrapper-template

JavaScript
1
star
52

marsjs

TypeScript
1
star
53

twine-app-builder-dev

Experimental features for Twine App Builder
HTML
1
star
54

lazerwalker

1
star
55

lickr-web

If you're not in MAS.863, you probably don't care about this.
Python
1
star
56

iron-blogger

Ruby
1
star