Skip to content

Instantly share code, notes, and snippets.

@rarous
Last active April 8, 2021 08:51
Show Gist options
  • Save rarous/d934a79fb4b83d0490ee5934e685e088 to your computer and use it in GitHub Desktop.
Save rarous/d934a79fb4b83d0490ee5934e685e088 to your computer and use it in GitHub Desktop.
(def data
[{:title "Getting started"
:reset_lesson_position false
:lessons [{:name "Welcome"}
{:name "Installation"}]}
{:title "Basic operator"
:reset_lesson_position false
:lessons [{:name "Addition / Subtraction"}
{:name "Multiplication / Division"}]}
{:title "Advanced topics"
:reset_lesson_position true
:lessons [{:name "Mutability"}
{:name "Immutability"}]}])
(def lesson-position (atom 0))
(defn lessons [{:keys [lessons reset_lesson_position]}]
(when reset_lesson_position (reset! lesson-position 0))
(into [] (map #(assoc % :position (swap! lesson-position inc))) lessons))
(into [] (map-indexed #(assoc %2 :position (inc %1) :lessons (lessons %2))) data)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment