(def random) #001: Abstractions June 10, 2023 | 27 minutes27 m. (38 words) What is abstraction in computer programming? Explanations and code examples in Clojure and Python. #abstraction > Clojure > Python
(def random) Programming – randomly June 10, 2023 The series ‘(def random)’ assembles video episodes dedicated to computer programming. Here, you’ll find explanations and examples of using the Clojure language, and over time, other programming languages as well. #video
References Are Good February 6, 2021 | May 30, 2025 | 12 minutes12 m. (2450 words) Last night I received an e-mail in which one of my visitors asked me a few questions after reading the post about parsing phone numbers in Clojure. The question was seemingly simple and concerned a technical detail of software construction, but in reality the reader touched on a very important subject that I had been pondering years ago, and I decided to summarise it here. #reference #identity #pointer #abstraction #control #URL #identifier > Clojure > C
Read Me Clojure, Pt. 6 Bindings and namespaces November 28, 2014 | July 22, 2019 | 85 minutes85 m. (17941 words) Bindings let source-level names denote values and reference objects, while namespaces organize top-level Vars, Java classes, and aliases. In this installment, we will learn how these mechanisms shape resolution, scope, and visibility in Clojure. #namespace #binding #scope #visibility #software library > Clojure
Read Me Clojure, Pt. 5 Type Systems November 27, 2014 | July 7, 2019 | 47 minutes47 m. (9872 words) Data types allow us to classify values according to various characteristics and to establish relations between the resulting classes. This helps the programmer define operations performed on data of different kinds, and it helps language mechanisms manage memory and detect certain kinds of errors. In Clojure, we deal with several interrelated type systems that we can extend, and by leveraging their polymorphic mechanisms, we are able to abstract data management and build unified information exchange interfaces. #type system #data type > Clojure
Read Me Clojure, Pt. 4 Data Structures November 26, 2014 | February 1, 2019 | 79 minutes79 m. (16731 words) Data structures, alongside algorithms expressed as operations, are a fundamental component of every computer program. When building applications, we choose structures that will be best suited for processing data within our adopted model. #binding #data type #data structure #metadata #persistent structures > Clojure
Read Me Clojure, Pt. 3 Basic Constructs November 25, 2014 | November 20, 2018 | 82 minutes82 m. (17462 words) The specific syntax of Lisp dialects allows one to precisely define and distinguish basic constructs, add new syntactic elements, and transform program forms as data during macro expansion. This stems from the use of simple yet well-thought-out ways of organizing and representing source code. #basics #S-expression #list #syntax #grammar #cons #form > Clojure
Read Me Clojure, Pt. 2 First Steps November 12, 2014 | December 5, 2018 | 35 minutes35 m. (7401 words) Clojure, like most Lisp dialects, comes equipped with an interactive console that lets us experiment and test our knowledge in real time. Before we move on to the theoretical foundations of the language, let us get some hands-on contact with its mechanisms. #installation #REPL #introduction > Clojure
Read Me Clojure, Pt. 1 Lisp November 10, 2014 | 16 minutes16 m. (3253 words) Clojure is a general-purpose functional programming language based on the Lisp-1 model. Its reference implementation runs on the JVM, but there are also editions that work in other environments – for example, the popular ClojureScript, which compiles to JavaScript. Clojure is a Lisp created with concurrent processing and the Java ecosystem in mind. #introduction > Clojure > Lisp