Next:
Contents
 
Contents
The Slate Programmer's Reference Manual
Brian Rice and Lee Salzman
Contents
List of Figures
1 Introduction
Conventions
Terms
2 Language Reference
2.1 Objects
2.1.1 Code Blocks
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 Optional Keyword Arguments
2.3.5 Resends
2.3.6 Subjective Dispatch
2.3.6.1 Basic mechanisms
2.3.6.2 Important features
2.3.6.3 The core elements
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
2.6.5 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.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 Collecting Protocols
3.7.5 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 Networking
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.11.4 Type Inference
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
4.5 Type-Annotating Expressions
Bibliography
About this document ...
The Slate Project 2004-08-06