Comment

Comment by chana_masala

Here's an implementation of a prime finding algorithm in pure (only type-level) Typescript.

    type IsPrime<
      MaybePrime extends number,
      NumAsTuple extends unknown[] = [],
      RemainderAsTuple extends unknown[] = NumAsTuple,
    > =
      MaybePrime extends NumAsTuple["length"]
        ? NumAsTuple["length"] extends RemainderAsTuple["length"]
          ? NumAsTuple["length"] extends (1 | 2 | 3 | 4 | 5 | 6)
            ? NumAsTuple["length"] extends (1 | 2 | 3 | 5)
              ? true
              : false
            : NumAsTuple extends [infer _, infer _, infer _, infer _, infer _, infer _, ...infer Rest]
              ? IsPrime<MaybePrime, NumAsTuple, Rest>
              : false
          : RemainderAsTuple["length"] extends (1 | 2 | 3 | 4 | 5 | 6)
            ? RemainderAsTuple["length"] extends (1 | 5)
              ? true
              : false
            : RemainderAsTuple extends [infer _, infer _, infer _, infer _, infer _, infer _, ...infer Rest]
              ? IsPrime<MaybePrime, NumAsTuple, Rest>
              : false
        : IsPrime<MaybePrime, [...NumAsTuple, 1]>;

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton