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.12.2 Scheduling
3.12.3 Synchronization
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
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 ...
The Slate Project 2005-04-11