ch06
dz / grokking_simplicity / ch06Summary
Grokking Simplicty Chapter 6: Staying immutable in a mutable language
Node Tree
- writes_data_mutable
- COW_discipline
- immutable_reads_calculations
- nested_data_cow
- operation
- read_and_write
- shallow_copy
- structural_sharing
Nodes
| operation | |
| content | Operation can be categorized as a read or write |
| COW_discipline | |
| content | Copy-on-write discipline: make copy, modify copy, return copy |
| read_and_write | |
| content | What about a function that does both a read and write? |
| children | shift (example of function that does both read/write) |
| shift | |
| content | Example: shift function. Returns first value, shifts array function |
| children | either_shift_refactor |
| parents | read_and_write |
| either_shift_refactor | |
| content | Either |
| children | split_up_into_2, return_2_values |
| parents | shift |
| split_up_into_2 | |
| content | Split up into 2 functions |
| parents | either_shift_refactor |
| return_2_values | |
| content | Return 2 values from function |
| parents | either_shift_refactor |
| immutable_reads_calculations | |
| content | Reads to immutable data structures are calculations |
| children | mutable_reads_actions (Corollary), convert_writes_reads |
| mutable_reads_actions | |
| content | Mutable reads are actions |
| parents | immutable_reads_calculations |
| writes_data_mutable | |
| content | Writes make data mutable |
| convert_writes_reads | |
| content | converting writes to reads makes more calculations |
| parents | immutable_reads_calculations |
| remarks | I'd like to understand this better. examples are in the book fortunately. |
| shallow_copy | |
| content | Shallow Copy: only duplicate top-level structure of nested data |
| structural_sharing | |
| content | Structural Sharing: two pieces of data shrae some of their references |
| nested_data_cow | |
| content | Nested data and copy-on-write make efficient use of references |
| children | only_parts |
| only_parts | |
| content | only parts of structure need to be replaced |
| parents | nested_data_cow |