Skip to content

Add apply, let and Stanford further reading to the FP chapter - #41

Merged
d-morrison merged 2 commits into
mainfrom
claude/project-thread-slhcky
Oct 29, 2026
Merged

d-morrison merged 2 commits into
mainfrom
claude/project-thread-slhcky

Conversation

@d-morrison

@d-morrison d-morrison commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

Finishes the Stanford functional programming follow-ups held back from #40 to keep that PR under the size cap.

Why

Ezra asked for Stanford's old CS 107 (Scheme), CS 242 and CS 99 materials to be found and adapted. CS 107's course materials are CC BY-NC-SA, so this MIT repo only links to them: every item here is new or link-only. Adaptations under the same license live in the private grading repo.

Changes

  • _spread_exr.qmd / _spread_sol.qmd (in Functions as values): introduces apply with a new spread exercise, replacing the draft's CS 107-adapted average.
  • _let_def.qmd and _quadratic-roots_exm.qmd: let as shorthand for applying a lambda, and an example that names a value used twice. Section renamed to "Anonymous functions and local names" (id unchanged).
  • _scheme-racket_rem.qmd: what changes when reading CS 107's Scheme in Racket, with a link to CS 107 Lecture 19.
  • _further-reading_rem.qmd: links CS 107's course page and lectures 19 to 23, Will Crichton's CS 242 notes, and CS 99 (Lean 4).
  • references.bib: cain2008cs107videos now covers lectures 19 to 23 and points at the SEE course page; adds aniva2025cs99 (CS 99 was first offered in Spring 2025).
  • inst/WORDLIST: Kawa, OCaml.

Checks

  • Every Racket result was run in Racket 8: (apply max (list 3 9 2)) is 9, (spread (list 4 -1 7 2)) is 8, (apply + (list 2 7 6)) is 15, the let example is 9, and (roots 1 -3 2) is '(2 1).
  • The chapter renders to HTML. check-rendered-page.py reports it clean, and every new div id resolves.
  • An adversarial review found seven items. Fixed: the car/cdr wording (Racket accepts both), semantic line breaks, "still a pure function", and the unneeded "Lean" wordlist entry. Kept as they are: the multi-part exercise, which matches the chapter's existing twice exercise, and the Scheme remark's place at the chapter end, since moving it earlier would make it refer forward to cond. The CS 99 year, missing at first, came from the CI review and is now 2025.

🤖 Generated with Claude Code

https://claude.ai/code/session_019xfc9rJjY4bCnfxuBmX2Ch

Finishes the Stanford follow-ups held back from mcs#40 to keep that PR
under the size cap. Every item is new or link-only: CS 107's course
materials are CC BY-NC-SA, so nothing from them is copied here.

- spread exercise and solution: introduces apply, replacing the draft's
  CS 107-adapted average
- let definition and the quadratic-roots example
- Scheme-to-Racket remark and further-reading remark linking CS 107
  lectures 19-23, CS 242 notes and CS 99
- bib: generalize the CS 107 video entry, add CS 99

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019xfc9rJjY4bCnfxuBmX2Ch
Copilot AI balanced review requested due to automatic review settings October 29, 2026 20:56

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

@d-morrison d-morrison self-assigned this Oct 29, 2026
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

The Claude review on mcs#41 found that CS 99 was first offered in
Spring 2025, so the key and a new year field now say 2025.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019xfc9rJjY4bCnfxuBmX2Ch
Copilot AI balanced review requested due to automatic review settings October 29, 2026 21:08

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

@github-actions

Copy link
Copy Markdown
Contributor

Claude finished review — View run


The entry is now well-formed BibTeX, consistent with its siblings (key, year field, note all present), and matches the citation used in the text. This fully resolves the one finding from the prior round.

I reviewed the full range since the last round (bd8b57a..f9ee130): a single commit, "Date the CS 99 reference to its first offering, Spring 2025," touching only references.bib and _further-reading_rem.qmd. No other content changed in this round.

Review: PR #41 — Add apply, let and Stanford further reading to the FP chapter

What changed since the last round

Exactly one commit (c10639d), making exactly the fix the prior review requested:

  • references.bib:594-609 — renamed the aniva2026cs99 key to aniva2025cs99 and added year = {2025}, correcting the course's first-offering year.
  • chapters/_subfiles/functional-programming/_further-reading_rem.qmd:11 — updated the @aniva2026cs99 citation to @aniva2025cs99 to match.

I confirmed no stale references to the old key remain anywhere in the repo (grep -rn "aniva2026cs99" returns nothing), the new key resolves and is cited correctly, and the entry is well-formed BibTeX consistent with its sibling entries (crichton2019cs242, cain2008cs107videos), all of which now carry explicit year fields.

Findings

None. The prior round's only finding — the aniva2026cs99 year/key mismatch reported in the summary posted 2026-10-29T21:02:49Z — is fully fixed in this range, with no new issues introduced. Everything else verified in that prior round (Racket semantics, cross-reference resolution, external URL liveness, WORDLIST additions, bullet-list formatting, build hygiene) is untouched by this range and still stands.

Verdict

Ready for merge — the prior round's sole finding is fixed, and no new issues were found in this range.

Structured Review Data (JSON)
{
  "schema_version": "1.1",
  "reviewer": "claude",
  "commit_sha": "f9ee130b3f0704b3f99eb422271ef1144447ed95",
  "verdict": "CLEAN",
  "findings": [],
  "detailed_assessment": "The only change in this range, references.bib's aniva2025cs99 rename with an added year field, correctly fixes the previously flagged 2026 mismatch with no remaining stale key references.",
  "holistic_assessment": "Scope stays limited to the one requested citation correction, integrates cleanly with the sibling bibliography entries, and introduces no regression, build-hygiene, or validation gaps."
}

Reviewed commit: c10639d

@github-actions

Copy link
Copy Markdown
Contributor

💰 Cost: $0.2680 (review) — run

@github-actions

github-actions Bot commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1
Preview removed because the pull request was closed.

2026-10-29 21:19 UTC

@d-morrison
d-morrison merged commit da953a8 into main Oct 29, 2026
28 checks passed
@d-morrison
d-morrison deleted the claude/project-thread-slhcky branch October 29, 2026 21:18

Copy link
Copy Markdown
Contributor Author

Merged at c10639d under Ezra's merge-when-confident grant. The check script reported it fully clean: CI was green, there were no review threads, and the Claude review was clean on this head.

The cross-model review was waived because no qualifying reviewer could run. I probed it only after merging, which is the wrong order, and I'm noting that here. The OpenCode Go models all returned GoUsageLimitError, gemini-4-argon-contributor returned "Model is unavailable", and iceman-contributor-free and beam-free returned empty bodies. If a non-Claude reviewer later finds a defect in this diff, it will be fixed in a new PR.

Posted by Claude Code (AI agent) --- not written by a human.


Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants