Lunar Programming Language
by David A. MoonJanuary 2017 - January 2018
Last updated 9/17/2023.
4. Behavior
4.1 Function Bundles
4.2 Methods
4.3 Method Selection
4.5 Sealed Methods
4.6 Dominant Methods
7. Statements
7.1 If Statement
7.2 Case Statement
7.3 Block Statement
7.3.1 Early Exit
7.3.2 Cleanup
8. Definitions
8.1 Scope
8.1.1 Hoisting
8.7 Macro Definition
8.8 Class Definition
8.8.1 Simple Class Definition
8.8.2 Class Modifiers
10. Bundles
11. Generic Classes
11.1 Syntax
12. Generic Methods
12.1 Syntax
13. Protocols
14. Basic Data Types
14.1 Everything
14.2 Nothing
14.3 Boolean
14.4 Name
14.5 Character
14.6 Number
14.6.1 Integer
14.6.2 Float
14.7 Type
14.7.1 Class
14.7.2 Range
14.7.3 Set
14.7.4 Union
14.7.5 Intersection
14.8 Function
14.9 Method
15. Collection Types
15.1 Sequences
15.2 Reversible Sequences
15.3 Keyed Sequences
15.4 Successions
15.5 Lists
15.6 Stacks
15.7 Ranges
15.8 Strings
15.9 Sets
15.10 Maps
15.11 Sequence Operators
15.12 Sequence Functions
16. Displays and Comprehensions
16.1 List Displays
16.2 List Comprehensions
16.3 Set Displays
16.4 Set Comprehensions
16.5 Map Displays
16.6 Map Comprehensions
18. Streams
21. Parsing
21.1 Token Streams
22. Patterns
22.1 Pattern Constants
22.2 Pattern Variables
22.3 Pattern Punctuation
22.4 Syntactic Constructs
23. Templates
23.1 Template Examples
24. Macros
24.1 Macro Definitions
24.1.1 Infix Macro Definitions
24.2 Name In Context
24.3 Hygienic Macros
27. Exception Handling
27.1 Catch and Throw
27.2 Catch Statement
27.3 Exceptions
27.3.1 assert statement
27.4 Exception Handlers
27.5 Exception Restarts
28. Thrilling Examples
28.1 Suffix Macros
28.2 Percentages
28.3 S-Expressions
28.4 Parsing Expressions
32. Bootstrap Lunar