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
Traits
3
.
3
.
0
.
1
Traits Windows
3
.
4
Control-flow
3
.
4
.
1
Boolean Logic
3
.
4
.
2
Basic Conditional Evaluation
3
.
4
.
3
Early Returns
3
.
4
.
4
Looping
3
.
4
.
5
Method Queries
3
.
4
.
6
Method Operations
3
.
5
Symbols
3
.
6
Magnitudes and Numbers
3
.
6
.
1
Basic Types
3
.
6
.
2
Basic Operations
3
.
6
.
3
Non-core Operations
3
.
6
.
4
Limit Numerics
3
.
6
.
5
Dimensioned Units
3
.
7
Collections
3
.
7
.
0
.
1
Testing Methods
3
.
7
.
0
.
2
Properties
3
.
7
.
0
.
3
Making new collections
3
.
7
.
0
.
4
Iterating
3
.
7
.
1
Extensible Collections
3
.
7
.
2
Sequences
3
.
7
.
2
.
1
Arrays
3
.
7
.
2
.
2
Vectors
3
.
7
.
2
.
3
Subsequences / Slices
3
.
7
.
2
.
4
Cords
3
.
7
.
2
.
5
Extensible and Sorted Sequences
3
.
7
.
2
.
6
Stacks
3
.
7
.
2
.
7
Ranges
3
.
7
.
2
.
8
Buffers
3
.
7
.
3
Strings and Characters
3
.
7
.
4
Collections without Duplicates
3
.
7
.
5
Mappings and Dictionaries
3
.
7
.
6
Linked Collections
3
.
7
.
6
.
1
Linked Lists
3
.
7
.
6
.
2
Trees
3
.
7
.
6
.
3
Graphs
3
.
7
.
7
Vectors and Matrices
3
.
8
Streams and Iterators
3
.
8
.
1
Basic Protocol
3
.
8
.
2
Basic Stream Variants
3
.
8
.
3
Basic Instantiation
3
.
8
.
4
Collecting Protocols
3
.
8
.
5
Iterator Streams
3
.
9
External Resources
3
.
9
.
0
.
1
Basic Types
3
.
9
.
0
.
2
Primitives
3
.
9
.
0
.
3
Standard behavior
3
.
9
.
1
Consoles
3
.
9
.
2
Files
3
.
9
.
3
Shells and Pipes
3
.
9
.
4
Networking
3
.
10
Paths
3
.
11
Exceptions
3
.
11
.
1
Types
3
.
11
.
2
Protocol
3
.
12
Concurrency
3
.
12
.
1
Processes
3
.
13
Types
3
.
13
.
1
Types
3
.
13
.
2
Operations
3
.
13
.
3
Type Annotations
3
.
13
.
4
Type Inference
3
.
14
Modules
3
.
14
.
1
Types
3
.
14
.
2
Operations
3
.
14
.
3
Auto-loading
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
Bibliography
Index
About this document ...
Brian T. Rice 2005-06-08