fsharp
fsharp copied to clipboard
Extending the learning syllabus: a tentative plan
Concept tree for F# learning mode
Live exercises and concepts
Solid green means both are merged and the exercise is available to students.
Some that are already in progress or planned
This is a very fluid plan and will doubtless continue to change frequently!
Boxes with green borders have the exercise + concept PRs submitted.
Progress tracking
For anyone interested in the boring details, there is a tracking sheet.
graph TD
start(("Start")) --basics--> basics["lasagna"]
style basics fill:#0f0
basics --booleans--> booleans["annalyns-infiltration"]
style booleans fill:#0f0
booleans --if-then-else--> if-then-else["cars-assemble"]
style if-then-else fill:#0f0
strings --numbers--> numbers["cars-assemble"]
style numbers fill:#0f0
strings -.chars.-> chars["squeaky-clean"]
style chars fill:#0f0
if-then-else -.chars.-> chars["squeaky-clean"]
style chars fill:#0f0
if-then-else -..- numbers
if-then-else --pattern-matching--> pattern-matching["guessing-game"]
style pattern-matching fill:#0f0
numbers --pattern-matching--> pattern-matching["guessing-game"]
style pattern-matching stroke:#f00
numbers --datetimes--> datetimes["booking-up-for-beauty"]
style datetimes fill:#0f0
numbers --floating-point-numbers--> floating-point-numbers["interest-is-interesting"]
style floating-point-numbers fill:#0f0
numbers -.integral-numbers.-> integral-numbers["hyper-optimized-telemetry"]
style integral-numbers stroke:#f00
pattern-matching -.expressions.-> expressions["??"]
style expressions stroke:#f00
basics --strings--> strings["log-levels"]
style strings fill:#0f0
basics -.modules??.-> modules["??"]
style modules stroke:#f00
pattern-matching --tuples--> tuples["tisbury-treasure-hunt"]
style tuples fill:#0f0
pattern-matching --arrays--> arrays["bird-watcher"]
style arrays fill:#0f0
pattern-matching --recursion--> recursion["pizza-pricing"]
style recursion fill:#0f0
pattern-matching --lists--> lists["tracks-on-tracks-on-tracks"]
style lists fill:#0f0
lists -.higher-order-functions.-> higher-order-functions["secret-agent ?"]
style higher-order-functions stroke:#f00
higher-order-functions -.function-composition.-> function-composition["??"]
style function-composition stroke:#f00
pattern-matching --records--> records["bandwagoner"]
style records fill:#0f0
records -.generic-types.-> generic-types["??"]
style generic-types stroke:#f00
generic-types -.maps.-> maps["international-calling-connoisseur ?"]
style maps stroke:#f00
generic-types -.sets.-> sets["face-id2"]
style sets stroke:#f00
generic-types -.mutation.-> mutation["??"]
style mutation stroke:#f00
mutation -.fields.-> fields["??"]
style fields stroke:#f00
records -.classes.-> classes["elons-toys"]
style classes stroke:#f00
pattern-matching -.exceptions.-> exceptions["calculator-conundrum"]
style exceptions stroke:#f00
exceptions -.overflows.-> overflows["hyperinflation-hits-hyperia"]
style overflows stroke:#f00
options -..-> error-handling["??"]
style error-handling stroke:#f00
exceptions -.error-handling.-> error-handling["??"]
style error-handling stroke:#f00
classes -..-> inheritance["wizard-and-warriors"]
style inheritance stroke:#f00
basics --discriminated-unions--> discriminated-unions["valentines-day"]
style discriminated-unions fill:#0f0
discriminated-unions -.inheritance.-> inheritance["wizards-and-warriors"]
style inheritance stroke:#f00
inheritance -.string-formatting.-> string-formatting["high-school-sweethearts"]
style string-formatting stroke:#f00
discriminated-unions -.options.-> options["??"]
style options stroke:#f00
options -.results.-> results["??"]
style results stroke:#f00
classes -.method-overloading.-> method-overloading["wizards-and-warriors-2"]
style method-overloading stroke:#f00
method-overloading -.constructors.-> constructors["need-for-speed"]
style constructors stroke:#f00
inheritance -.attributes.-> attributes["attack-of-the-trolls"]
style attributes stroke:#f00
classes -.properties.-> properties["weighing-machine"]
style properties stroke:#f00
properties -.static-members.-> static-members["??"]
style static-members stroke:#f00
static-members -.operator-overloading.-> operator-overloading["??"]
style operator-overloading stroke:#f00
Other stuff to add:
graph TD
TODO -.memory-allocation.-> memory-allocation["??"]
style memory-allocation stroke:#f00
TODO -.type-inference.-> type-inference["??"]
style type-inference stroke:#f00
TODO -.continuations.-> continuations["??"]
style continuations stroke:#f00
TODO -.structs.-> structs["land-grab-in-space ?"]
style structs stroke:#f00
What do we do about these?
- LINQ
- Regex