HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
codr7
g-fu
Go2019–2020
codr7 / g-fu

g-fu

Lisp 2 Go

3Distinct people
36Mentions
0Explicit recommenders
243GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Lisp 2 Go

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 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 2:59:53 AM 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 month36 dated mentions

Observed mentions: 2019-04-13 13:21:10 UTC to 2020-02-18 14:45:37 UTC.

0510152019-04-01 00:00:00 UTC to 2019-05-01 00:00:00 UTC (exclusive): 8 mentions; 4 submissions, 4 commentsApr 20192019-05-01 00:00:00 UTC to 2019-06-01 00:00:00 UTC (exclusive): 15 mentions; 7 submissions, 8 comments2019-06-01 00:00:00 UTC to 2019-07-01 00:00:00 UTC (exclusive): 7 mentions; 2 submissions, 5 comments2019-07-01 00:00:00 UTC to 2019-08-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2019-08-01 00:00:00 UTC to 2019-09-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2019-09-01 00:00:00 UTC to 2019-10-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsSep 20192019-10-01 00:00:00 UTC to 2019-11-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2019-11-01 00:00:00 UTC to 2019-12-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-12-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2020-01-01 00:00:00 UTC to 2020-02-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-02-01 00:00:00 UTC to 2020-03-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsFeb 2020

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
Apr 20192019-04-01 00:00:00 UTC2019-05-01 00:00:00 UTC844
May 20192019-05-01 00:00:00 UTC2019-06-01 00:00:00 UTC1578
Jun 20192019-06-01 00:00:00 UTC2019-07-01 00:00:00 UTC725
Jul 20192019-07-01 00:00:00 UTC2019-08-01 00:00:00 UTC101
Aug 20192019-08-01 00:00:00 UTC2019-09-01 00:00:00 UTC101
Sep 20192019-09-01 00:00:00 UTC2019-10-01 00:00:00 UTC000
Oct 20192019-10-01 00:00:00 UTC2019-11-01 00:00:00 UTC202
Nov 20192019-11-01 00:00:00 UTC2019-12-01 00:00:00 UTC000
Dec 20192019-12-01 00:00:00 UTC2020-01-01 00:00:00 UTC110
Jan 20202020-01-01 00:00:00 UTC2020-02-01 00:00:00 UTC000
Feb 20202020-02-01 00:00:00 UTC2020-03-01 00:00:00 UTC101

What Hacker News says

15 sources
I find Clojure refreshing, but it has too many agendas for me and Java is just (a) no Go. I tried, I did. And launching the repl felt like watching grass grow on my latest/greatest macbook. And if I'm going to use a Lisp in Go, I definitely prefer one designed around Go to one imported from Java. The Clojure-code I've written, while terse; always feels too far off from what I want to say. I have the same issues with Haskell, too much hoop jumping to take part in someone else's quest for purity. There's plenty I like in there and Rich is a very disciplined thinker. The languages have much in common. g-fu's way of using environments looks a lot like Clojures use of maps if you squint. Transducers are brilliant, it's difficult for me to believe it took this long. Which is why g-fu uses [0] them as the foundation for all sequence transformati
Read the rest
In Show HN: G-Fu – a pragmatic Lisp embedded in Go
Author here. It's still a young language and naive implementation focused on correctness, but I'm very happy with how its turning out. I'm especially fond of first class environments and qualified identifiers [0]; which allow composing, overriding and delegating data and behavior in a convenient yet remarkably flexible way. It's clearly a more fundamental mechanism than the usual suspects. Note that this is the opposite of what Python is doing with __dict__ and Lua with tables. Rather than basing the implementation on a general purpose data structure, g-fu exposes the the implementation and allows hooking into it. It reminds me of pcostanza's work on Context Oriented Programming and ContextL [1], but integrated rather than bolted on. [0] https://github.com/codr7/g-fu/tree/master/v1#environments [1] https://github.com/pcostanza/contextl
In Show HN: G-Fu – a pragmatic Lisp embedded in Go
Go makes composition less powerful than it could be by slicing structs, which means a lot of hoop jumping to get template methods (where blanks are filled in downstream). I've been playing around with first class environments [0] lately in g-fu [1], which allow convenient and flexible composition of data and behavior using only what was already there. I have a feeling Lua might be playing similar tricks with its tables, but I lack enough experience to judge. [0] https://github.com/codr7/g-fu/blob/master/v1/lib/eos.gf [1] https://github.com/codr7/g-fu
In Inheritance versus Composition
I recently implemented a simple object system [0] using only closures and macros in a Lisp-dialect [1] I'm working on. One thing that struck me is how little it bothers me that objects look like functions from the outside, and that any callable value could be used in their place. It helps that the whole thing is quarantined in a separate library and that objects live in a separate namespace. And that it rests on top of a strongly typed environment. Judging a type system outside of its context based on some arbitrary check list is pretty useless from my experience. [0] https://github.com/codr7/g-fu/blob/master/v1/doc/functional_... [1] https://github.com/codr7/g-fu/tree/master/v1
In What to Know Before Debating Type Systems (2008)

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.