Next:
Contents
Contents
Index
The Slate Programmer's Reference Manual
Brian T. Rice and Lee Salzman
Contents
List of Figures
1 Introduction
1.1 Conventions
1.2 Terms
2 Language Reference
2.1 Objects
2.1.1 Code Blocks
2.1.2 Slots
2.1.3 Inheritance
2.2 Sending Messages
2.2.1 Unary Messages
2.2.2 Binary Messages
2.2.3 Keyword Messages
2.2.4 Implicit-context Messages
2.3 Sequencing Expressions
2.4 Methods
2.4.1 Roles
2.4.2 Method Definitions
2.4.3 Expression-based Definitions
2.4.4 Lookup Semantics
2.4.5 Optional Keyword Arguments
2.4.5.1 In Method Definitions
2.4.5.2 In Message Sends
2.4.5.3 In Code Blocks
2.4.6 Resends
2.4.7 Subjective Dispatch
2.4.7.1 Basic mechanisms
2.4.7.2 Important features
2.4.7.3 The core elements
2.5 Type Annotations
2.6 Macro Message-sends
2.6.1 Defining new Macro-methods
2.6.2 Quoting and Unquoting
2.6.2.1 Labelled Quotation
2.6.3 Message Cascading
2.6.4 Slots as Block Variables
2.6.5 Expression Substitution
2.6.6 Source Pattern Matching
2.7 Literals
2.7.1 Numbers
2.7.1.1 Integers
2.7.1.2 Floats
2.7.1.3 Radix Prefixes
2.7.2 Characters
2.7.3 Strings
2.7.4 Symbols
2.7.5 Arrays
2.7.6 Blocks
3 The Slate World
3.1 Overall Organization
3.1.1 The lobby
3.1.2 Naming and Paths
3.2 Core Behaviors
3.2.1 Default Object Features
3.2.2 Oddballs
3.3 Introspection
3.3.1 Slot Queries
3.3.2 Method Queries
3.4 Traits
3.4.0.1 Traits Windows
3.5 Control-flow
3.5.1 Boolean Logic
3.5.2 Basic Conditional Evaluation
3.5.3 Early Returns
3.5.4 Looping
3.5.5 Method Operations
3.6 Symbols
3.7 Magnitudes and Numbers
3.7.1 Basic Types
3.7.2 Basic Operations
3.7.3 Non-core Operations
3.7.4 Limit Numerics
3.7.5 Dimensioned Units
3.8 Collections
3.8.0.1 Testing Methods
3.8.0.2 Properties
3.8.0.3 Making new collections
3.8.0.4 Iterating
3.8.1 Extensible Collections
3.8.2 Sequences
3.8.2.1 Arrays
3.8.2.2 Vectors
3.8.2.3 Subsequences / Slices
3.8.2.4 Cords
3.8.2.5 Extensible and Sorted Sequences
3.8.2.6 Stacks
3.8.2.7 Ranges
3.8.2.8 Buffers
3.8.3 Strings and Characters
3.8.4 Collections without Duplicates
3.8.5 Mappings and Dictionaries
3.8.6 Linked Collections
3.8.6.1 Linked Lists
3.8.6.2 Trees
3.8.6.3 Graphs
3.8.7 Vectors and Matrices
3.9 Streams and Iterators
3.9.1 Basic Protocol
3.9.2 Basic Stream Variants
3.9.3 Basic Instantiation
3.9.4 Collecting Protocols
3.9.5 Iterator Streams
3.10 External Resources
3.10.0.1 Basic Types
3.10.0.2 Primitives
3.10.0.3 Standard behavior
3.10.1 Consoles
3.10.2 Files
3.10.3 Shells and Pipes
3.10.4 Networking
3.11 Paths
3.12 Exceptions
3.12.1 Types
3.12.2 Protocol
3.13 Concurrency
3.13.1 Processes
3.13.2 Promises and Eventual-Sends
3.14 Types
3.14.1 Types
3.14.2 Operations
3.14.3 Type Annotations
3.14.4 Type Inference
3.15 Modules
3.15.1 Types
3.15.2 Operations
3.15.3 Auto-loading
3.16 Persistence
3.16.1 Slate Heap Images
3.16.2 Heap Image Segments
4 Style Guide
4.1 Environment organization
4.1.1 Namespaces
4.1.2 Exemplars or Value Objects
4.2 Naming Methods
4.2.1 Attributes
4.2.2 Queries
4.2.3 Creating
4.2.4 Performing Actions
4.2.5 Binary Operators
4.3 Instance-specific Dispatch
4.3.1 Motivations
4.3.2 Limitations
4.4 Organization of Source
4.5 Type-Annotating Expressions
4.6 Writing Test Cases
Bibliography
Index
About this document ...
Brian Rice 2005-11-21