Next:
Contents
 
Contents
The Slate Programmer's Reference Manual
Brian Rice and Lee Salzman
Contents
1 Introduction
Conventions
Terms
2 Language Reference
2.1 Objects
2.1.1 Block Closures
2.1.2 Slot Properties
2.2 Expressions
2.2.1 Unary Message-sends
2.2.2 Binary Message-sends
2.2.3 Keyword Message-sends
2.2.4 Expression Sequences
2.2.5 Implicit-context Sends
2.3 Methods
2.3.1 Method Definitions
2.3.2 Expression-based Definitions
2.3.3 Lookup Semantics
2.3.4 Resends
2.3.5 Subjective Dispatch
2.3.5.1 Basic mechanisms
2.3.5.2 Important features
2.3.5.3 The core elements
2.3.6 Optional Keyword Arguments
2.4 Type Annotations
2.5 Macro Message-sends
2.5.1 Defining new Macro-methods
2.5.2 Quoting and Unquoting
2.5.2.1 Labelled Quotation
2.5.3 Expression Substitution
2.5.4 Source Pattern Matching
2.6 Literals
2.6.1 Characters
2.6.2 Strings
2.6.3 Symbols
2.6.4 Arrays
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 Traits
3.4 Control-flow
3.4.1 Boolean Logic
3.4.2 Basic Conditional Evaluation
3.4.3 Looping
3.5 Magnitudes and Numbers
3.5.1 Basic Types
3.5.2 Basic Operations
3.5.3 Non-core Operations
3.5.4 Limit Numerics
3.5.5 Dimensioned Units
3.6 Collections
3.6.0.1 Testing Methods
3.6.0.2 Properties
3.6.0.3 Making new collections
3.6.0.4 Iterating
3.6.1 Extensible Collections
3.6.2 Sequences
3.6.2.1 Arrays
3.6.2.2 Vectors
3.6.2.3 Subsequences / Slices
3.6.2.4 Cords
3.6.2.5 Extensible and Sorted Sequences
3.6.2.6 Stacks
3.6.2.7 Ranges
3.6.2.8 Buffers
3.6.3 Strings and Characters
3.6.4 Collections without Duplicates
3.6.5 Mappings and Dictionaries
3.6.6 Linked Collections
3.6.6.1 Linked Lists
3.6.6.2 Trees
3.6.6.3 Graphs
3.6.7 Vectors and Matrices
3.7 Streams and Iterators
3.7.1 Basic Protocol
3.7.2 Basic Stream Variants
3.7.3 Basic Instantiation
3.7.4 Iterator Streams
3.8 External Resources
3.8.0.1 Basic Types
3.8.0.2 Primitives
3.8.0.3 Standard behavior
3.8.1 Consoles
3.8.2 Files
3.8.3 Shells and Pipes
3.8.4 Sockets
3.9 Exceptions
3.9.1 Types
3.9.2 Protocol
3.10 Concurrency
3.10.1 Processes
3.10.2 Scheduling
3.10.3 Synchronization
3.11 Types
3.11.1 Types
3.11.2 Operations
3.11.3 Type Annotations
3.12 Modules
3.12.1 Types
3.12.2 Operations
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
Bibliography
About this document ...
The Slate Project 2003-12-05