add1 などの言語プリミティブを使用せずに、教会の数字を整数表現に変換することは可能ですか?
私が遭遇したすべての例は、プリミティブを使用して int にデチャーチします
例:
plus1 = lambda x: x + 1
church2int = lambda n: n(plus1)(0)
例 2:
(define (church-numeral->int cn)
((cn add1) 0))
私はマイクロ Lisp インタプリタ (John McCarthy の 10 のルールのみを使用) を試していますが、プリミティブを追加せずにそれを実行できるかどうかを理解したいと考えています。