WIP: feat: Add closures exercises #2099
Open
+269
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #1746
This is just something to work off of as a start.
I was thinking that maybe 2 would show various syntax errors when writing closures. Maybe we want to mention that non-capturing closures coerce to fn pointers here.
3 could be about capturing and using the move keyword to get fine grained control over capturing. This should also mention lifetimes, so when a closure captures outside state, it holds on to a reference in general. This might need to be split up into multiple lessons.
4 could be about how usage of captured state dictates which Fn traits the closure can implement.
I'm thinking once we flesh things out and spread things apart it should be about 5-6 lessons in the chapter.
I forfeit all copyright to the works in the PR so anyone can take over if I become unresponsive/busy.
I should be around though. Please feel free to make a pull request towards my fork if anyone has suggestions pre-merge.
Thanks