combinators

Я новичок в мире комбинаторов с фиксированной точкой, и я предполагаю, что они используются для рекурсии на анонимных лямбдах, но я действительно не должен использовать их или даже был в состоянии полностью обернуть свою голову вокруг них. Я видел пример в Javascript для Y-комбинатора, но не смог его успеш...

Я сталкиваюсь с проблемой, когда значение отбрасывается, пока оно все еще заимствовано внутри Option, в закрытии, но мне трудно понять, что именно происходит. Чтобы проиллюстрировать, вот рабочий пример того, чего я на самом деле пытаюсь достичь: fn foo() -> Option<String> { let hd = match std:...

В последнее время я занимаюсь F# (мой фон-C#) и читаю сайт http://fsharpforfunandprofit.com , что я нахожу очень полезным. Я должен http://fsharpforfunandprofit.com/posts/defining-functions/, который является разделом о комбинаторах. Я понимаю их всех (хотя Y combinator или Sage bird не дают мне покоя!) за ...

Каждый раз, когда я использовал fix :: (a -> a) -> a, это было в типе ((a -> b) -> a -> b) -> a -> b Для некоторых a и b. Существует ли на самом деле какое-то применение fix, где его параметр типа не является экземпляром типа функции, кроме такой тривиальной вещи, как fix (const 0)? К...

Y-комбинатор-это концепция информатики с "функциональной" стороны вещей. Большинство программистов вообще ничего не знают о комбинаторах, если они даже слышали о них. что такое Y-комбинатор? как работают комбинаторы? для чего они хороши? полезны ли они в процедурных языках? ...

что такое комбинатор?? это "функции или определение без свободных переменных" (как определено на SO)? или как насчет этого: по данным Джон Хьюз в своей известной статье о стрелках,"комбинатор-это функция, которая строит фрагменты программы из фрагменты программы", что выгодно, потому что "... программист с ...

Я хотел проверить foldl против foldr. Из того, что я видел, вы должны использовать foldl над foldr, когда вы можете из-за оптимизации хвостовой рекурсии. это имеет смысл. Однако после запуска этого теста я запутался: foldr (занимает 0.057 с при использовании команды time): a::a -> [a] -> [a] a x = ([...

может кто-нибудь объяснить как foldr работы? принять эти примеры: Prelude> foldr (-) 54 [10, 11] 53 Prelude> foldr (x y -> (x+y)/2) 54 [12, 4, 10, 6] 12.0 Я запутался в этих казнях. Есть предложения?...