Factorability

Code has a maturation cycle; you don’t just write the final thing initially, because you don’t know what it should be. You work your way there. 1

Scalars and functions do not require meaningless syntax changes when changing scope, capturing scope 2, or switching between being named or unnamed.3 4

                                 { ... } // Anonymous code block
                       [capture] { ... } // Captured code block
     (i: int) -> float [capture] { ... } // Anonymous function
f :: (i: int) -> float [capture] { ... } // Named function (local or global)

  1. your programming language should be designed to support the transition from humble beginnings to final product.
    “A Programming Language for Games, talk #2.” YouTube, uploaded by Jonathan Blow, Sep 26, 2014, https://youtu.be/5Nc68IdNKdg?t=2171 

  2. i can just apply a capture to any block.
    “A Programming Language for Games, talk #2.” YouTube, uploaded by Jonathan Blow, Sep 26, 2014, https://youtu.be/5Nc68IdNKdg?t=3344 

  3. we want to avoid meaningless syntactic changes that create drudge work as I gradually factor my program from its beginning state into its final state.
    “A Programming Language for Games, talk #2.” YouTube, uploaded by Jonathan Blow, Sep 26, 2014, https://youtu.be/5Nc68IdNKdg?t=1837 

  4. we have this whole sequence of stages we can lift a block of code on.
    “A Programming Language for Games, talk #2.” YouTube, uploaded by Jonathan Blow, Sep 26, 2014, https://youtu.be/5Nc68IdNKdg?t=3549 

jailang 2019 pixeldroid
https://github.com/pixeldroid/jailang
programming pages theme v0.5.21 (https://github.com/pixeldroid/programming-pages)