Вопросы по теме 'scott-encoding'
Есть ли какой-нибудь нерекурсивный термин, который складывается по списку, закодированному Скоттом?
Предположим, что у меня есть scott-encoded список, например:
scott = (\ c n -> c 1 (\ c n -> c 2 (\ c n -> c 3 (\ c n -> n))))
Мне нужна функция, которая получает такой список и преобразует его в фактический список ( [1,2,3] ),...
154 просмотров
schedule
02.01.2023
Как использовать кодировку Church для Free Monads?
Я использовал тип данных Free в Control.Monad.Free из пакета free . Теперь я пытаюсь преобразовать его для использования F в Control.Monad.Free.Church , но не могу понять, как сопоставить функции.
Например, простая функция сопоставления с...
1347 просмотров
schedule
31.05.2022
Как определить тип конструктора списка, закодированного Скоттом?
Списки, закодированные по Скотту, можно определить следующим образом:
newtype List a =
List {
uncons :: forall r. r -> (a -> List a -> r) -> r
}
В отличие от версии ADT, List является одновременно и типом, и...
129 просмотров
schedule
08.06.2022