We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

Talk:Combinator Junk

From Esolang
Jump to navigation Jump to search

This language ought to embed cleanly in Cammy. I can hack up a compiler if necessary. Corbin (talk) 22:29, 17 May 2026 (UTC)

Looked at Cammy, I can see we were thinking among similar lines. In fact, your page's link to wikipedia:primitive recursive functional was rather enlightening. Since I can't work on a compiler for quite some time, that sounds splendid -- though my plans for the compiler did involve a few things not covered in the article, like being able to leave out signatures that are easily inferred. Junkshipp (talk) 23:55, 17 May 2026 (UTC)

Questions I am planning to look into

Can you encode pairs of all types A × B?

I consider one to be able to encode pairs of a specific type A × B when you can define the following functions as terms in CJ (named here for convenience)

(For some type C,)

  • pair : A -> B -> C
  • fst : C -> A
  • snd : C -> B

such that

  • fst (pair a b) = a
  • snd (pair a b) = b

A positive answer to the question would mean having a similar construction for all types A and B.

Is it possible to "reduce" certain more expressive yet non-Turing Complete systems into CJ?

Obviously, this is not literally possible. What I'm really after is a proof that all terms N -> N definable in some more expressive system have an equivalent in CJ, i.e. a CJ term that always gives the same output as it for the same input. Or maybe even the same for all terms with types CJ can represent? I'm not quite sure what I'm after.