Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

As software engineers this is easier to explain I think.

Create a listA with all integers.

Create a listB with all multiples of 3.

Is listA.length > listB.length? No, it is not.



That somewhat falls apart when you start comparing infinite sets that actually _do_ have different cardinalities.


I think the pseudocode might just be hard to write here

const N = [1,2,3 ... ];

const countableSet = N.map(n => getEnumeratedFraction(n));

e.g. here the lambda function maps the natural numbers to all fractions (cantor showed how to easily implement getEnumeratedFraction).

For all sets of equal cardinality, a pure function exists that transforms N (or another set of the cardinality you wish) when mapping the set members. And conversely, if such a function exists, the sets are of same size.

Since the pseudocode is JS-like, you could also write it using Set.

The sets are represented in pseudocode as arrays because enumeration is the point here.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: