Описание тега church-encoding
Вопросы о кодировке Чёрча, способе представления данных с использованием функций и кодировке Бёма-Берардуччи, ее переносе в типизированную настройку. Для вопросов, касающихся в первую очередь связанных кодировок Скотта и Могенсена-Скотта, есть [scott-encoding].
2
ответа
Неисключающая ошибка при реализации церковных цифр в Swift 3
Я пытаюсь внедрить церковные цифры в Swift 3. В настоящее время у меня есть: func numToChurch(n: Int) -> ((Int) -> Int) -> Int { return { (f: (Int) -> Int) -> (Int) -> Int in return { (x : Int) -> Int in return f(numToChurch(n: …
01 окт '16 в 19:34
3
ответа
Арифметика с церковными цифрами
Я работаю через SICP, и проблема 2.6 поставила меня в затруднительное положение. При работе с церковными числами концепция кодирования нуля и 1 в качестве произвольных функций, которые удовлетворяют определенным аксиомам, кажется, имеет смысл. Кроме…
12 окт '10 в 07:09
1
ответ
Как создать экземпляр типа класса в haskell?
Я новичок в Хаскеле. Я смотрю, есть ли способ создать экземпляр типа класса. Есть ли способ заставить этот код работать без использования данных или нового типа? type N = ∀n. (n -> n) -> n -> n instance Printable N where print :: N -> IO…
30 июл '16 в 16:11
1
ответ
Ошибка TypeScript 3.0 при использовании `unknown`
Здесь я тестирую TypeScript3.0 unkown тип. https://blogs.msdn.microsoft.com/typescript/2018/07/12/announcing-typescript-3-0-rc/ TypeScript 3.0 представляет новый тип под названием unknown это делает именно это. Так же, как anyлюбое значение присваив…
29 июл '18 в 12:29
1
ответ
Операции над церковными списками в Хаскеле
Я имею в виду этот вопрос type Churchlist t u = (t->u->u)->u->u В лямбда-исчислении списки кодируются следующим образом: [] := λc. λn. n [1,2,3] := λc. λn. c 1 (c 2 (c 3 n)) mapChurch :: (t->s) -> (Churchlist t u) -> (Churchlist…
23 мар '12 в 20:54
1
ответ
Функция преобразования церковного кодирования не компилируется с GADT
to_c Приведенная ниже функция отклонена из-за ошибки типа при компиляции с расширением GADT, которое я хочу использовать для несвязанного фрагмента кода, который здесь не показан. newtype Church = Church { unC :: forall a. (a -> a) -> a -> …
30 дек '17 в 16:05
1
ответ
Выражение церковных цифр с помощью 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) { if(i =…
01 сен '11 в 16:53
1
ответ
Как кодировать отложенный тип с церковью?
С помощью функций мы можем абстрагироваться от любого типа. Здесь 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 = So…
24 ноя '18 в 18:45
1
ответ
Определите бинарный экспоненциальный оператор CARAT.в лямбда-исчислении CARAT
Я пытаюсь определить бинарный экспоненциальный оператор в лямбда-исчислении, скажем, оператор CARAT. Например, этот оператор может принимать два аргумента: лямбда-кодировку числа 2 и лямбда-кодировку числа 4 и вычисляет лямбда-кодировку числа 16. Я …
09 дек '13 в 04:02
1
ответ
Закрытия и универсальное количественное определение
Я пытался понять, как реализовать церковные типы данных в Scala. Кажется, что для этого нужны типы ранга n, так как вам понадобится первый класс const функция типа forAll a. a -> (forAll b. b -> b), Тем не менее, я смог кодировать пары таким о…
08 апр '10 в 17:56
1
ответ
Церковное кодирование логического и STLC
Часто говорят, что tru t f = t fls t f = f представляют True и False в том смысле, что "мы можем использовать эти термины для выполнения операции по проверке истинности логического значения". Но это скрывает важное предостережение в том, что оно каж…
05 июн '16 в 15:25
2
ответа
Sml Церковный вывод цифрового типа
У меня есть это выражение в SML, и мне нужно найти его наиболее общий тип. При запуске через компилятор я получаю то, что показано ниже. Как мне найти наиболее общий тип не только этой функции, но и других функций, таких как церковные цифры, функция…
18 фев '15 в 22:01
2
ответа
Почему мы используем сгибы для кодирования типов данных как функций?
Или, если быть точным, почему мы используем foldr для кодирования списков и итерации для кодирования чисел? Извините за длинное вступление, но я не знаю, как назвать то, о чем я хочу спросить, поэтому сначала мне нужно будет рассказать об этом. Это …
27 ноя '12 в 01:04
0
ответов
Могу ли я реализовать гетерогенный список, основанный на экзистенциале с кодировкой Черча и типами Rank-N?
В моей попытке понять экзистенциальные типы, я прочитал, что кодирования Черча вместе с расширением Rank-N-types будет достаточно, чтобы кодировать их в Haskell без экзистенциального количественного определения. Я нашел этот простой пример: type Obj…
25 июн '17 в 08:38
1
ответ
Пытаясь понять церковную кодировку в схеме
Я пытаюсь понять весь принцип церковного кодирования через Схему. Я думаю, что понимаю основы этого, такие как Церковная цифра для 0 (определить c-0 (лямбда (f) (лямбда (x) x))) Церковная цифра для 1 (определить c-1 (лямбда (f) (лямбда (x) (fx)))) .…
29 окт '14 в 16:21
4
ответа
Церковное кодирование списков с использованием правильных сгибов и списков различий
Вот очередной вопрос после Как хранить данные функциональной цепочки Monoidal List? а также Извлечение данных из цепочки функций без массивов и здесь я хотел бы выразить свое уважение и благодарность авторам моих Вопросов, особенно @Aadit M Shah и @…
23 июл '18 в 19:26
2
ответа
Почему списки различий не являются экземплярами складных?
Пакет dlist содержит DList тип данных, который имеет много экземпляров, но не Foldable или же Traversable, На мой взгляд, это два самых "похожих на список" класса типов. Есть ли причина производительности, которая DList не является экземпляром этих …
23 мар '13 в 17:03
1
ответ
Быстрая функция высшего порядка (церковная пара или минусы) с общими типами параметров, не принимающими типы входных параметров
Я возился с функциональным программированием в Swift 2.1, пытаясь реализовать функцию пары / минусы кодирования Черча ( cons = λx λy λf fxy в нетипизированном лямбда-исчислении), которую, как я читал, нельзя было сделать в более ранних версиях Swift…
08 ноя '15 в 17:58
1
ответ
Не может вывести числовое представление (церковное кодирование) лямбда-выражения λx.λy.x(xy)
У меня есть лямбда-выражение: λx.λy.x(xy)и я должен вывести целочисленное представление этого. Я много читал о церковных кодировках и церковных цифрах, но не могу найти, что это за число. Можете ли вы объяснить это мне так, как трехлетний ребенок мо…
28 янв '16 в 15:33
3
ответа
Вычитание церковных цифр в хаскеле
Я пытаюсь ввести церковные цифры в Хаскеле, но столкнулся с небольшой проблемой. Haskell жалуется на бесконечный тип с Происходит проверка: невозможно построить бесконечный тип: t = (t -> t1) -> (t1 -> t2) -> t2 когда я пытаюсь сделать вычитание. Я …
06 июл '11 в 11:38