Вопросы по теме 'fixpoint-combinators'
Какая фиксированная точка фиксации?
Недавний плакат, который лучше всего оставить анонимным, попытался реализовать факториальную функцию следующим образом:
f :: Int -> Int
f = fix f
Это явно не сработало. Но потом я задумался: могу ли я пройти проверку типов? Что откроет...
115 просмотров
schedule
03.03.2023
Почему эта версия fix более эффективна в Haskell?
В Haskell это простое (наивное) определение фиксированной точки
fix :: (a -> a) -> a
fix f = f (fix f)
Но вот как это реализовано в Haskell (более эффективно)
fix f = let x = f x in x
Мой вопрос: почему второй более эффективен,...
1317 просмотров
schedule
19.05.2023
Haskell: получение типов Show для Fix
Я пытаюсь реализовать рекурсивный тип данных, используя recursion-schemes . Я хотел бы иметь возможность распечатать его.
import Data.Functor.Foldable
data T1F a = Foo deriving Show
type T1 = Fix T1F
data T2 = Bar T1 deriving Show -- error...
498 просмотров
schedule
12.11.2022
Использование комбинаторов Comonad Fix
Так что в последнее время я экспериментировал с фиксированными точками и, наконец, боролся с обычными фиксированными точками в достаточной степени, чтобы обнаружить некоторые применения; теперь я перехожу к комонадическим фиксированным точкам и...
241 просмотров
schedule
16.06.2023
Определите списки с наименьшей фиксированной точкой, суммой и типами продуктов
Я хочу определить списки, используя только определения этого типа:
data Unit = Unit
data Prod a b = P a b
data Sum a b = L a | R b
newtype Mu f = Mu (forall a . (f a -> a) -> a)
Мне удалось определить натуральные числа следующим...
163 просмотров
schedule
30.01.2024
Y-комбинатор, похоже, не имеет никакого эффекта
Я попытался использовать y-комбинатор (как в Lua, так и в Clojure), так как думал, что это позволит мне превысить размер реализации стека по умолчанию при использовании рекурсии. Кажется, я ошибся. Да, это работает, но в обеих этих системах стек...
220 просмотров
schedule
22.06.2023
Наименьшая фиксированная точка, наибольшая фиксированная точка
Почему наименьшая фиксированная точка совпадает с наибольшей фиксированной точкой в ленивом неполном языке, таком как Haskell? При чем тут непрерывность полных частичных заказов?
673 просмотров
schedule
02.03.2023
Совместное использование и отсутствие совместного использования комбинатора с фиксированной запятой
Это обычное определение комбинатора с фиксированной точкой в Haskell:
fix :: (a -> a) -> a
fix f = let x = f x in x
На https://wiki.haskell.org/Prime_numbers#Linear_merging они определяют другую фиксированную точку комбинатор:...
323 просмотров
schedule
19.04.2022
Как repmin размещает значения в дереве в Haskell?
Мне очень нравится задача repmin :
Запишите repmin :: Tree Int -> Tree Int , который заменяет все числа в дереве на их минимум за один проход.
Если бы я писал что-то подобное на python, я бы передавал значения по их ссылке (скажем,...
124 просмотров
schedule
01.08.2023