People talk a lot about using data to model things in Clojure. But how do you do that? This 9-part series explores many different ways to model systems in Clojure, including with various literal data structures, closures, and records. This is a serious exploration with tradeoffs discussed. Your math teacher would be proud: all work is shown so you see how everything is related.

Want this course?

Team License

$499
  • HD Download
  • Watch Online
  • Lifetime Access
  • For your company

Download License

$75
  • HD Download
  • Watch Online
  • Lifetime Access
  • For an individual

Online License

$48
  • Watch Online
  • Lifetime Access
  • For an individual

Membership

$49/mo
  • HD Downloads
  • Watch Online
  • Full access
  • All Content
  • For an individual
Get access

Love it or leave it guarantee

If you don't learn as much from this course as you thought, just ask for a refund within 30 days and I'll give you your money back.

Data Modeling in Clojure

Lessons

Video time: 01h50m

0 / 9

Introduction
  • 7 min

This lesson introduces the Solitaire series. It goes over some of the basics of solitaire, the importance of becoming a domain expert, and how we can start to break down the domain into discreet concepts we can model. The lesson is 7 minutes long.

Card Representations
  • 14 min
  • free

This lesson demonstrates and evaluates many different representations of playing cards. The lesson includes a video screencast, a git repository with all code, and some exercises. The video is 14 minutes long.

Card functional abstraction
  • 14 min

This lesson teaches how to use functional abstraction to make changes to data structures quick and easy. This lesson includes a video screencast, a git repo, and two exercises. The video is 14 minutes long.

Modeling Games
  • 16 min

This lesson teaches various options for representing the state of a game of solitare. It includes a video screencast, a git repo, and exercises. The video is 16 minutes long. The exercises might take 20-30 minutes.

Moves Part 1
  • 11 min

In this lesson we test-drive a functional abstraction for representing moves in solitaire. We build two different moves and refactor them a little. This lesson includes a video screencast, a git repo, and exercises. The video is 11 minutes long. The exercises might take 20-30 minutes.

Moves Part 2
  • 16 min

In this lesson we develop a new type of move and refactor all moves into a concise form. This lesson includes a video screencast, a git repo, and exercises. The video is 16 minutes long. The exercises might take 20-30 minutes.

Moves Part 3
  • 14 min

In this lesson we develop a data representation for moves and a function to apply them to a game. This lesson includes a video screencast, a git repo, and an exercise. The video is 14 minutes long. The exercise might take 10 minutes.

Dealing a Game
  • 15 min

In this lesson we develop a function that returns a new, dealt game. This lesson includes a video screencast and a git repo. The video is 16 minutes long.

Validating moves
  • 4 min

In this lesson we develop a "rule engine" for checking the validity of a move. This lesson includes a video screencast, an exercise, and a git repo. The video is 4 minutes long. The exercise might take 30 minutes.