frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

What rare disease AI teaches us about longitudinal health

https://myaether.live/blog/what-rare-disease-ai-teaches-us-about-longitudinal-health
1•takmak007•2m ago•0 comments

The Brand Savior Complex and the New Age of Self Censorship

https://thesocialjuice.substack.com/p/the-brand-savior-complex-and-the
1•jaskaransainiz•4m ago•0 comments

Show HN: A Prompting Framework for Non-Vibe-Coders

https://github.com/No3371/projex
1•3371•4m ago•0 comments

Kilroy is a local-first "software factory" CLI

https://github.com/danshapiro/kilroy
1•ukuina•14m ago•0 comments

Mathscapes – Jan 2026 [pdf]

https://momath.org/wp-content/uploads/2026/02/1.-Mathscapes-January-2026-with-Solution.pdf
1•vismit2000•16m ago•0 comments

80386 Barrel Shifter

https://nand2mario.github.io/posts/2026/80386_barrel_shifter/
2•jamesbowman•17m ago•0 comments

Training Foundation Models Directly on Human Brain Data

https://arxiv.org/abs/2601.12053
1•helloplanets•18m ago•0 comments

Web Speech API on HN Threads

https://toulas.ch/projects/hn-readaloud/
1•etoulas•20m ago•0 comments

ArtisanForge: Learn Laravel through a gamified RPG adventure – 100% free

https://artisanforge.online/
1•grazulex•20m ago•1 comments

Your phone edits all your photos with AI – is it changing your view of reality?

https://www.bbc.com/future/article/20260203-the-ai-that-quietly-edits-all-of-your-photos
1•breve•22m ago•0 comments

DStack, a small Bash tool for managing Docker Compose projects

https://github.com/KyanJeuring/dstack
1•kppjeuring•22m ago•1 comments

Hop – Fast SSH connection manager with TUI dashboard

https://github.com/danmartuszewski/hop
1•danmartuszewski•23m ago•1 comments

Turning books to courses using AI

https://www.book2course.org/
2•syukursyakir•25m ago•0 comments

Top #1 AI Video Agent: Free All in One AI Video and Image Agent by Vidzoo AI

https://vidzoo.ai
1•Evan233•25m ago•1 comments

Ask HN: How would you design an LLM-unfriendly language?

1•sph•26m ago•0 comments

Show HN: MuxPod – A mobile tmux client for monitoring AI agents on the go

https://github.com/moezakura/mux-pod
1•moezakura•27m ago•0 comments

March for Billionaires

https://marchforbillionaires.org/
1•gscott•27m ago•0 comments

Turn Claude Code/OpenClaw into Your Local Lovart – AI Design MCP Server

https://github.com/jau123/MeiGen-Art
1•jaujaujau•28m ago•0 comments

An Nginx Engineer Took over AI's Benchmark Tool

https://github.com/hongzhidao/jsbench/tree/main/docs
1•zhidao9•30m ago•0 comments

Use fn-keys as fn-keys for chosen apps in OS X

https://www.balanci.ng/tools/karabiner-function-key-generator.html
1•thelollies•30m ago•1 comments

Sir/SIEN: A communication protocol for production outages

https://getsimul.com/blog/communicate-outage-to-ceo
1•pingananth•32m ago•1 comments

Show HN: OpenCode for Meetings

https://getscripta.app
2•whitemyrat•32m ago•1 comments

The chaos in the US is affecting open source software and its developers

https://www.osnews.com/story/144348/the-chaos-in-the-us-is-affecting-open-source-software-and-its...
1•pjmlp•34m ago•0 comments

The world heard JD Vance being booed at the Olympics. Except for viewers in USA

https://www.theguardian.com/sport/2026/feb/07/jd-vance-boos-winter-olympics
67•treetalker•36m ago•14 comments

The original vi is a product of its time (and its time has passed)

https://utcc.utoronto.ca/~cks/space/blog/unix/ViIsAProductOfItsTime
1•ingve•43m ago•0 comments

Circumstantial Complexity, LLMs and Large Scale Architecture

https://www.datagubbe.se/aiarch/
1•ingve•50m ago•0 comments

Tech Bro Saga: big tech critique essay series

1•dikobraz•53m ago•0 comments

Show HN: A calculus course with an AI tutor watching the lectures with you

https://calculus.academa.ai/
1•apoogdk•57m ago•0 comments

Show HN: 83K lines of C++ – cryptocurrency written from scratch, not a fork

https://github.com/Kristian5013/flow-protocol
1•kristianXXI•1h ago•0 comments

Show HN: SAA – A minimal shell-as-chat agent using only Bash

https://github.com/moravy-mochi/saa
1•mrvmochi•1h ago•0 comments
Open in hackernews

History of Declarative Programming (2021)

https://shenlanguage.org/TBoS/tbos_15.html
77•measurablefunc•1mo ago

Comments

rtpg•1mo ago
Very interesting historical document, though I don't have that much confidence in the precision of the explanation of the terms.

Related to this: does anyone know if there's any document that delves into how Church landed on Church numerals in particular? I get how they work, etc, but at least the papers I saw from him seem to just drop the definition out of thin air.

Were church numerals capturing some canonical representation of naturals in logic that was just known in the domain at the time? Are there any notes or the like that provide more insight?

viftodi•1mo ago
While I don't know much about Church numbers or the theory how lambda calculus works, taking a glance at the definitions on wikipedia they seem to be the math idea of how numbers works (at the meta level)

I forgot the name of this, but they seem the equivalent of successors in math In the low level math theory you represent numbers as sequences of successors from 0 (or 1 I forgot)

Basically you have one then sucessor of one which is two, sucessor of two and so on So a number n is n successor operations from one

To me it seems Church numbers replace this sucessor operation with a function but it's the same idea

rtpg•1mo ago
Church ends up defining zero as the identity function, and N as "apply a function to a zero-unit N times"

While defining numbers in terms of their successors is decently doable, this logical jump (that works super well all things considered!) to making numbers take _both_ the successor _and_ the zero just feels like a great idea, and it's a shame to me that the papers I read from Church didn't intuit how to get there.

After the fact, with all the CS reflexes we have, it might be ... easier to reach this definition if you start off "knowing" you could implement everything using just functions and with some idea of not having access to a zero, but even then I think most people would expect these objects to be some sort of structure rather than a process.

There is, of course, the other possibility which is just that I, personally, lack imagination and am not as smart as Alonzo Church. That's why I want to know the thought process!

itishappy•1mo ago
> Church ends up defining zero as the identity function

Zero is not the identity function. Zero takes a function and calls it zero times on a second function. The end result of this is that it returns the identity function. In Haskell it would be `const id` instead of `id`.

    zero := λf.λx.x
    one  := λf.λx.fx
    two  := λf.λx.ffx

    id   := λx.x
I suspect that this minor misconception may lead you to an answer to your original question!

Why isn't the identity function zero? Given that everything in lambda calculus is a function, and the identity function is the simplest function possible, it would make sense to at least try!

If you try, I suspect you'll quickly find that it starts to break down, particularly when you start trying to treat your numerals as functions (which is, after all, their intended purpose).

Church numerals are a minimal encoding. They are as simple as it possibly gets. This may not speak to Church's exact thought process, but I think it does highlight that there exists a clear process that anyone might follow in order to get Church's results. In other words, I suspect that his discover was largely mechanical, rather than a moment of particularly deep insight. (And I don't think this detracts from Church's brilliance at all!)

measurablefunc•1mo ago
Their structural properties are similar to Peano's definition in terms of 0 and successor operation. ChatGPT does a pretty good job of spelling out the formal structural connection¹ but I doubt anyone knows how exactly he came up with the definition other than Church.

¹https://chatgpt.com/share/693f575d-0824-8009-bdca-bf3440a195...

rtpg•1mo ago
Yeah I've been meaning to send a request to Princeton's libraries with his notes but don't know what a good request looks like

The jump from "there is a successor operator" to "numbers take a successor operator" is interesting to me. I wonder if it was the first computer science-y "oh I can use this single thing for two things" moment! Obviously not the first in all of science/math/whatever but it's a very good idea

measurablefunc•1mo ago
Probably not possible unless you have academic credentials to back up your request like being a historian writing a book on the history of logic & computability.
black_knight•1mo ago
The idea of Church numerals is quite similar to induction. An induction proof extends a method of treating the zero case and the successor case, to a treatment of all naturals. Or one can see it as defining the naturals as the numbers reachable by this process. The leap to Church numerals is not too big from this.
mutkach•1mo ago
Before Church there was Peano, and before Peano there was Grassmann

> It is rather well-known, through Peano's own acknowledgement, that Peano […] made extensive use of Grassmann's work in his development of the axioms. It is not so well-known that Grassmann had essentially the characterization of the set of all integers, now customary in texts of modern algebra, that it forms an ordered integral domain in which each set of positive elements has a least member. […] [Grassmann's book] was probably the first serious and rather successful attempt to put numbers on a more or less axiomatic basis.

veqq•1mo ago
The Shen project is quite fascinating - and tedious to work with, as evidenced by this book of images across different pages etc.
pyrolistical•1mo ago
Oh god. Where is the pdf. This format is horrible to read from
tonypapousek•1mo ago
> Note that this material is here for reference and for sampling. Reading all of TBoS through this website is possible but not the intention. If you like the material and want to read the book conveniently then do buy either the latest hardcopy or e-version.

Unfortunately, I don’t think one can be linked given the author’s note.

airstrike•1mo ago
I mean, he can surely do whatever he wants, but good luck getting people to read it.
seg_lol•1mo ago
In so many ways, Shen is its own worst enemy.
ggm•1mo ago
Could this not be said for almost any computing system? I think "<x> is it's own worst enemy" has probably been said of everything from assembler to proof languages with hardware in-between.
seg_lol•1mo ago
I own the Shen books, which were difficult to come by. This is different. I moved on as has nearly everyone else. Looking forward to someone picking up a project with the same goals as Shen without the drama. <fin>
xnorswap•1mo ago
I'm generally a "drag over text" reader.

Images of text, even if it were a text size I'd be comfortable with, is something that just breaks how I read online.

teddyh•1mo ago
It’s been said that structured programming is programming without GOTO, and functional programming is programming without assignment statements. Is declarative programming then programming without the concept of linear time?
Akronymus•1mo ago
I thought fp was more avoiding mutability/reassigning values to identifiers

What you wrote makes me think more of the point free style

rhsjie294nd•1mo ago
When hearing of assignment statements, I think of mutability. Point free makes me think of (low to) no variables, rather than no assignments
itishappy•1mo ago
I would argue that imperative programming is the only one with a concept of linear time.

Here's a functional example:

    map (*3) [0,1,2,3,4,5,6,7,8,9]
Are those multiplications run in sequence or parallel?

Here's a fancier functional one:

    getUser = User <$> getName <*> getEmail <*> getStartDate
What order are the fields fetched?

If you answered "unspecified" then you're right! A compiler could parallelize either of these expressions!

1718627440•1mo ago
> A compiler could parallelize either of these expressions!

But that's also true for imperative languages.

itishappy•1mo ago
Fair point, but I think it's a lot more true of functional ones.

The problem is pretty easy to see in a C-style for loop:

    for (int i = 0; i < 5; i++) {
        printf("%d\n", i);
        if (i % 2 == 0) i++;
    }
The index variable depends on it's value in previous versions of the loop and can be modified in the loop body! Can't parallelize that!

Side effects and mutation break many of the promises provided by functional constructs. Hybrid languages like Python can illustrate this:

    # pure, parallelizable
    [2 * item for item in items]

    # side effect! order matters!
    [print(item) for item in items]

    # side effect! order matters!
    [arr.append(item) for item in items]
A language like Haskell might be the other extreme. You're not allowed to use an `f` that breaks this:

    [f item | item <- items]
MTarver•1mo ago
I'm pleased people have gt something out of the opening cahoter of TBoS. But the book was never designed to be read online, except as a preview and a quick lookup/reminder of features. For intensive prolonged reading, the route to purchasing the hardcopy is linked to the front page.

Anybody discouraged from buying by the very limited hurdle getting the book will completely fail at the more substantial hurdle of understanding it.

Expecting everything for free, and creators giving in to that demand shapes character. Systems which reward minimal effort, maximal demand, and zero reciprocity end up selecting for the worst traits in both readers and communities.