Вопросы по теме 'church-encoding'

Замыкания и универсальная количественная оценка
Я пытался понять, как реализовать в Scala типы данных, закодированные в формате Church. Кажется, что для этого требуются типы ранга n, поскольку вам понадобится первоклассная функция const типа forAll a. a -> (forAll b. b -> b) . Однако...
1113 просмотров

Выражение цифр Чёрча с помощью Boost.Bind
Числа Черча могут быть выражены в C++0x (C++11?), используя новые лямбда-части языка, используя что-то вроде это : typedef function<int(int)> F; static const F id = [=](int x) { return x; }; function<F(F)> church(unsigned int i) {...
192 просмотров

Что означает Ошибка: несогласованность Вселенной в Coq?
Я работаю с Основами программного обеспечения и в настоящее время выполняю упражнения по церковным числам. . Вот подпись типа натурального числа: Definition nat := forall X : Type, (X -> X) -> X -> X. Я определил функцию succ...
1587 просмотров
schedule 04.11.2022

Найдите наиболее общие типы следующих терминов лямбда-исчисления.
Мне трудно понять, почему это самые общие типы для соответствующих церковных цифр: 2 = λf.λx. f (f x) : (α → α) → α → α 1 = λf.λx. f x : (α → β) → α → β 0 = λf.λx. x : β → α → α Я думал, что все числительные Черча имеют один и тот же тип:...
373 просмотров

Можно ли создать представление общих АТД на уровне типов?
Используя кодировку Черча, можно представить любой произвольный алгебраический тип данных без использования встроенной системы АТД. Например, Nat можно представить (пример в Идрисе) как: -- Original type data Nat : Type where natSucc : Nat...
231 просмотров

Как кодировать отложенный тип с помощью Church?
С помощью функций мы можем абстрагироваться от любого типа. Вот пример типа Option : const Some = x => y => k => k(x); const None = y => k => y; const sqr = n => n * n; const run = f => t => t(f); const x =...
37 просмотров

Черч-кодирование зависимой пары
Такие пары можно легко кодировать по Черчу: Definition prod (X Y:Set) : Set := forall (Z : Set), (X -> Y -> Z) -> Z. Definition pair (X Y:Set)(x:X)(y:Y) : prod X Y := fun Z xy => xy x y. Definition pair_rec (X Y...
329 просмотров
schedule 11.02.2023

Преобразование из кодировки Черча в цифры
Я пытаюсь преобразовать церковную кодировку в цифры. Я определил свое собственное определение Lambda следующим образом: type Variable = String data Lambda = Lam Variable Lambda | App Lambda Lambda | Var Variable...
178 просмотров

Как итерировать или повторять нетипизированную функцию n раз?
Я практикуюсь с компилятором OCaml, и я выполняю небольшое задание, где мы должны реализовать числа Чёрча, определяемые как: zz = pair c0 c0; ss = λp. pair ( snd p) ( plus c1 (snd p)); prd = λm. fst (m ss zz ); и для расчета ss я хочу...
81 просмотров