HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
ar-nelson
schemepunk
Scheme2020–2023
ar-nelson / schemepunk

schemepunk

A batteries-included extended standard library for seven R7RS Scheme dialects.

2Distinct people
7Mentions
0Explicit recommenders
104GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A batteries-included extended standard library for seven R7RS Scheme dialects.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year7 dated mentions

Observed mentions: 2020-04-26 00:13:45 UTC to 2023-01-20 19:57:42 UTC.

0123452020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 5 mentions; 2 submissions, 3 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2023

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC523
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC000
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC211

What Hacker News says

7 sources
I started a project a few years ago with the goal of making more Schemes practical like this: Schemepunk (https://github.com/ar-nelson/schemepunk) The idea was to make a standard library as widely compatible with existing Schemes as possible. If it worked, then I could write code (with this library) that was "just Scheme", not a particular implementation, and would run equally well on any Scheme. And it would make bootstrapping new Scheme implementations easy: all you'd need is a bare minimum of R7RS Small functionality, and Schemepunk could do the rest. I haven't worked on it for a while, since I've moved on to other things. But I still think the idea has a lot of potential.
In Practical Scheme
In theory, R7RS Large will fix the discoverability problem by picking a single blessed SRFI implementation of each kind of library, and giving each one a name like (scheme hash-table), etc. Whenever it's done. And who knows when that will be. In the meantime, I'm in the process of building my own "alternate prelude" for several R7RS Schemes that chooses the latest SRFI for most of the common features you'd want (strings, hash tables, console text formatting, etc.) and polyfills them for Schemes that don't have them: https://github.com/ar-nelson/schemepunk Also, the compatibility story in R7RS is better than you'd think. The biggest problem is that a lot of R7RS implementations are incomplete and don't conform to the standard. For the ones that do, it feels similar to JavaScript in the early 2000s: lots of little inconsistencies, but they
Read the rest
can be polyfilled over with enough work. Someone just needs to give it the Crockford treatment and isolate the "good parts" that can be shared between implementations.
In Cyclone Scheme
This is weirdly relevant. I just finished implementing a persistent B-tree library in Scheme.[1][2] I don't know why B-trees aren't used more as a purely-functional data structure. Once they get large enough, they don't move around much when changed; there is no rebalancing except on deletes, and even that only affects the direct path to the deleted node. [1] https://github.com/ar-nelson/schemepunk#b-trees [2] https://github.com/ar-nelson/schemepunk/blob/master/btree.sl...
In Let’s Invent B(+)-Trees
I'm building a language server for R7RS Scheme. I have a basic error-tolerant parser working, and it can infer the location of missing parentheses from indentation. I'm already using it in Vim, and I've been pleasantly surprised at how useful it is, even at this early stage. I've gotten sidetracked building up the SRFI support in my portable Scheme standard library, Schemepunk: https://github.com/ar-nelson/schemepunk Right now it runs on 7 Schemes and has implementations or polyfills for 15 SRFI libraries. I'm also working on a B-tree implementation of SRFI 149 (persistent mappings).
In Ask HN: What Are You Working On?

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.