pmcgoron

Joined 8 months ago

Karma
31
Submissions
13
Member since
Feb 14
Graduate Student, Georgia Institute of Technology.

Mostly write Scheme in my free time. Author of some SRFIs (https://srfi.schemers.org) and member of R7RS-Large WG2.

Scheme website: https://florida.moe

Other website: https://peter.mcgoron.com

View on Hacker News

Recent submissions

Comment · 1 month ago
As an escape continuation, more than you'd expect. (Exception handlers, early return.) Full continuations are rarer, but I use them for doing error recovery.
Comment · 1 month ago
Aw, no call-with-current-continuation?
Comment · 5 months ago
Comment · 5 months ago
Comment · 5 months ago
Hello everyone.

Working Group 2 is pleased to announce the first draft of the second part of the R7RS-Large Foundations, the "Procedural Fascicle". This draft encompasses the familiar block programming forms, such as lambda, let, if, or, and set!.

The draft is available here:

https://r7rs.org/large/fascicles/proc/

The biggest new feature is the ability to mix definitions and expressions in bodies, such as the body of a lambda. For example, the following is now valid:

    (define (map f lst)
      (unless (list? lst)
        (error 'map "not a list" lst))
      (define (map* lst acc)
        (if (null? lst)
            (reverse acc)
            (map* (cdr lst) (cons (f (car lst)) acc))))
      (map* lst '()))
We welcome any and all comments on the draft. Anyone can comment by

* Filing an issue on the R7RS-Large issue tracker <https://codeberg.org/scheme/r7rs> * Sending mail to the Working Group 2 mailing list <https://groups.google.com/g/scheme-reports-wg2> (you do not need a google account) * Sending mail to the Scheme Reports mailing list <https://scheme-reports.simplelists.com/> and <[email protected]> * Sending mail to the corresponding member Peter McGoron at <[email protected]>. I will forward your comment to the public issue tracker. Please indicate if you wish to be anonymous.

Comment · 5 months ago
> FL HOTDOG.MIAMI.FL.US. [email protected]

I'm very confused by this entry. There isn't even a miami subdomain, just a Dade subdomain.

Comment · 8 months ago
Comment · 8 months ago
Would SectorLISP (https://justine.lol/sectorlisp2/) count? It can run the LISP 1.5 metacircular evaluator.
Comment · 8 months ago
From John Cowan:

TAGBODY doesn't actually require continuations, delimited or undelimited, just proper tail calling. A macro can rewrite each section of the TAGBODY into a procedure nested within a `let` that tail-calls its successor, and the body of the `let` tail-calls the first procedure. (GO tag) is then equivalent to just (tag). This is a great way of doing state machines. Chicken has a tagbody egg, I think.

Comment · 8 months ago
I guess I'll have to read more about effect handling systems, I'm very much out of my element there.

> yes, macros are hygienic!

I'm glad. Too many lisps chicken out and don't add them.

> easier to type!

Fair enough.

This seems very interesting, I will check it out.

Comment · 8 months ago
As someone who writes a lot of Scheme, I agree that the math syntax is not good. There have been proposals to add infix expressions (https://srfi.schemers.org/srfi-105/) but nobody seems to want them, or can agree on specifics.

However, code that is mostly function calls is fine for me, since those would have parentheses anyways in C++/Rust/whatever. In that case it makes the language more regular, which is nice for writing macros.

I'd be curious to hear your opinion on wisp (https://srfi.schemers.org/srfi-119/srfi-119.html) and the Readable project (https://srfi.schemers.org/srfi-110/srfi-110.html) which are significant indentation syntaxes for Lisp languages that are still closely related to the AST and allow for easy macro writing.

Comment · 8 months ago
1. I don't know much about HM systems mathematically, but how do the effect handlers interact with type inference? I thought there was some issues with automatic inference there.

2. The macros examples on the website don't show binding situations. Are the macro hygienic like in Scheme?

3. Why the choice of [] over ()?

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton