GitLab is open source software to collaborate on code (a GitHub clone to run on your own server). Clicking a blob (a file in a repository) in GitLab shows a nice rendering if GitLab supports the file type (e.g., images, Markdown documents), or its content as plain text otherwise. The patch described here adds support to GitLab for rendering IPython notebooks (.ipynb files).
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; Result of bootstrap-txes function above under datomic 0.9.5173 | |
;; Bootstrap transactions are 0, | |
;; More bootstrap transactions or datoms may be added in later datomic versions. | |
;; First non-bootstrap transaction is always T >= 1000. | |
;; Format is [[t [[e a v tx added] ...] ...] ...] | |
[[0 | |
[[0 10 :db.part/db 13194139533312 true] | |
[1 10 :db/add 13194139533312 true] | |
[2 10 :db/retract 13194139533312 true] |
This post also appears on lisper.in.
Reader macros are perhaps not as famous as ordinary macros. While macros are a great way to create your own DSL, reader macros provide even greater flexibility by allowing you to create entirely new syntax on top of Lisp.
Paul Graham explains them very well in [On Lisp][] (Chapter 17, Read-Macros):
The three big moments in a Lisp expression's life are read-time, compile-time, and runtime. Functions are in control at runtime. Macros give us a chance to perform transformations on programs at compile-time. ...read-macros... do their work at read-time.