Janet 1.4.0-655d4b3 Documentation
(Other Versions: 1.4.0 1.3.1)

Destructuring

Janet uses the get function to retrieve values from inside data structures. In many cases, however, you do not need the get function at all. Janet supports destructuring, which means both the def and var special forms can extract values from inside structures themselves.

# Without destructuring, we might do
(def my-array @[:mary :had :a :little :lamb])
(def lamb (get my-array 4))
(print lamb) # Prints :lamb

# Now, with destructuring,
(def [_ _ _ _ lamb] my-array)
(print lamb) # Again, prints :lamb

# Destructuring works with tables as well
(def person @{:name "Bob Dylan" :age 77})
(def
  {:name person-name
   :age person-age} person)

Destructuring will work in many places in Janet, including in let expressions, function parameters, and var. It is a useful shorthand for extracting values from data structures, and is the recommended way to get values out of small structures.