y-combinator

    1热度

    2回答

    我想创建一个lambda微积分函数P,使得给出((x y)(x P)(P z))。我尝试过使用Y-combinator/Turing组合器的变种,即λg.(g g)形式的函数,因为我需要重现函数本身,但是我看不到任何前进的方向。任何帮助将不胜感激。

    7热度

    2回答

    这是Scala中的Y组合子的实现: scala> def Y[T](func: (T => T) => (T => T)): (T => T) = func(Y(func))(_:T) Y: [T](func: (T => T) => (T => T))T => T scala> def fact = Y { | f: (Int => Int) => | n:

    0热度

    2回答

    在旧SWIFT世界的封闭(2.0我相信)的功能,我有以下的Y组合子实现 func Y<T, R>(f: (T -> R) -> (T -> R)) -> (T -> R) { return { (t: T) -> R in return f(self.Y(f))(t) } } 我会打电话在Y梳子别处创建一个递归的关闭,像这样: let delayTime =

    6热度

    1回答

    我知道我可以这样写SML中的y-combinator,如下所示: 首先声明一个新的数据类型来绕过由于圆形造成的类型不匹配。 datatype 'a mu = Roll of ('a mu -> 'a) val unroll = fn Roll x => x 现在您可以轻松定义的Y组合子: val Y = fn f => (fn x => fn a => f (unroll x x) a)

    6热度

    1回答

    Ÿ - Combinator的 我一直在努力学习绕Y - 组合子(上的解释是可爱的,以及)从这个​​跨越一个例子来了。关于这个主题的深入解释在Haskell或者Python中都是非常赞赏的。 Pleaaase! 代码 fix :: (a -> a) -> a fix f = f (fix f) 问题 调用的函数返回fix时9是fix应用于(\x -> 9),我不知道为什么;当我沿着堆栈看时,

    1热度

    1回答

    我可以使用Kotlin FP(Lambda,函数)编写Y组合函数吗? Y = λf.(λx.f (x x)) (λx.f (x x)) 在JS: function Y(f) { return (function (g) { return g(g); })(function (g) { return f(function (x) { re

    6热度

    3回答

    我相信我在数学上理解Y-组合器的想法:它返回给定功能F的固定点,因此f = Y(F)其中f满足f == F(f)。 但我不明白它是如何明智的实际计算程序? 让我们给here(我还包括在评论一个CoffeeScript的版本,它更易于阅读)的JavaScript例如: var Y = function (F) { return (function(x) { return F(fu

    0热度

    1回答

    我想了解OCaml中的Y组合器。我从here获取了一些代码,我正在尝试使用它来编写Ackermann函数。在链接的例子中,这些函数只需要一个参数。 Ackermann函数需要两个参数,并且因为它而一直存在语法错误。我到目前为止的代码是 type 'a mu = Roll of ('a mu -> 'a);; let unroll (Roll x) = x;; let fix f = (fu

    0热度

    1回答

    我建立了一个Y型组合子在JS这样 const y = f => { const g = self => x => f(self(self))(x); return g(g);} ,我简化了这样 const y = f => { const g = self => f(self(self)); return g(g);} 此得到无限递归的代码。 这两个版本有什么区别?

    -1热度

    1回答

    Ruby的递归如何被'破坏'以禁用ruby方法进行递归的能力? 需要创建一个程序来教授lambda微积分,但使用Ruby。从克罗克福德 动机上的JavaScript - https://www.youtube.com/watch?v=ya4UHuXNygM&feature=youtu.be&t=1h9m53s