-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
Goals:
- Concise and easy to understand explanations with rich examples.
- Introduce things iteratively. Don't include concepts in pages that haven't been introduced already (example: don't include lambda function syntax in code samples until they've been introduced). Jargon is fine if it's common knowledge as we will assume some programming experience.
Up for consideration:
- Introduce exercises at the end of each section that have the reader implement a specific function using the concepts introduced in that section.
- ...
Questions that need answering:
-
Should there be more pages with less content per page or less pages with more content. Example: Should the
recordspage include definitions, copy-and-update, pattern matching, etc... or should this be split into a couple of smaller pages.Another example is the
listpage. Should this include the list module and pattern matching? Should these be in separate pages? -
...
This table of contents is currently an incomplete rough draft and subject to lots of change:
- Basics
- Hello, World!
- Expressions
- Primitive Types
- String Formatting
- Operators
- Conditional Expressions
- Patterns and Match Expressions
- Functions
- Defining Functions (this could be moved to
Basics) - Functions as Values
- Recursive Functions
- Currying and Partial Application
- Pipes and Composition
- Defining Functions (this could be moved to
- Data and Types:
- Tuples
- Lists
- Sequences
- Sequence Expressions
- Type Abbreviations
- Records
- Discriminated Unions
- Generic Types
- The Option Type
- The Result Type
- Units of Measure
- Object Programming
- Classes and Members
- Interfaces
- Abstract Classes and Inheritance
- Object Expressions
- Type Extensions
Currently Missing:
- Single case unions
- Mutually recursive types
- Recursive patterns
- Active patterns
- Namespaces and Modules
- Accessibility Modifiers
- Computation Expressions
- Asynchronous Programming
- .NET Interop and stylistic differences
- Mutability (mutable bindings and properties [records and objects])
- Dates and Times
- Maps
- Sets
- Common Functions (List, Seq, Map, Result, Option, String, Char, DateTime, ...)
Metadata
Metadata
Assignees
Labels
No labels