Rename split-loop-with-lambda to slice-with-lambda
The refactoring is now published as Slice on sammancoaching.org: https://sammancoaching.org/refactorings/slice.html - git mv ideas/split-loop-with-lambda -> ideas/slice-with-lambda - rename learning-hour file and update frontmatter name - update paths in tools/rehearse scripts and report title - update prose: 'Split Loop with Lambda' -> 'Slice with Lambda' in learning hour, exercise READMEs, storyboard, solution comments - link the published Slice refactoring from the pattern draft
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
--- Run B+Q ---
|
||||
session file: /tmp/rehearsal/runs/B+Q/session/2026-09-27T15-19-54-490Z_01a0e373-8779-7024-b65c-e6e4e01334b3.jsonl
|
||||
model: Qwen/Qwen3.6-35B-A3B
|
||||
session span: 72.5 s
|
||||
assistant messages: 17
|
||||
tool calls: 17 total
|
||||
bash 8
|
||||
read 5
|
||||
edit 4
|
||||
tokens input: 253072
|
||||
tokens output: 6343
|
||||
tokens cacheRead: 0
|
||||
tokens cacheWrite: 0
|
||||
tokens reasoning: 637
|
||||
tokens TOTAL (sum): 260052
|
||||
--- /usr/bin/time -v (wall clock + max RSS) ---
|
||||
Elapsed (wall clock) time (h:mm:ss or m:ss): 1:12.70
|
||||
Maximum resident set size (kbytes): 255980
|
||||
Exit status: 0
|
||||
--- pi stdout (last 15 lines) ---
|
||||
All three steps are complete. The code compiles successfully. Here's a summary of the refactoring:
|
||||
|
||||
---
|
||||
|
||||
## Final Diff for `LongRangeForecasts.java`
|
||||
|
||||
| Change | Description |
|
||||
|--------|-------------|
|
||||
| **Import** | Added `java.util.function.LongFunction` |
|
||||
| **New no-arg overload** | `longRangeForecast()` — wraps the scorer in a lambda and delegates to the parameterized version |
|
||||
| **Signature change** | `longRangeForecast(String quarter)` → `longRangeForecast(LongFunction<Boolean> dayOffsetToWeather)` — removed `quarter` param and its Q1/Q4 block |
|
||||
| **Lambda extraction** | Removed the internal `dayOffsetToWeather` lambda definition; it's now passed as a method parameter |
|
||||
| **New helper method** | `collectExpectedWeather(List<Instant>, LongFunction<Boolean>)` — extracted weather-collection loop, receives the dependency-injected lambda |
|
||||
|
||||
The key outcome is that `Scorer` is no longer directly invoked inside `longRangeForecast`. Its behavior is injected via the `LongFunction<Boolean>` parameter, making the method testable and decoupled from the external dependency.
|
||||
Reference in New Issue
Block a user