使用De Bruijn符号,可以将lambda项定义为: data BTerm = BVar Int | BLam BTerm | BApp BTerm BTerm 或者使用常规符号, data Term = Var String | Lam String Term | App Term...
min通常在未类型化的lambda演算中定义,使用Caramel语法: sub a b = (b pred a) <= a b = (is_zero (sub b a)) min a b = (<= a b a b) 这样做效率非常低。由于它应用了线性的pred...
我发现了以下的lambda演算表达式: (((λ f . (λ x . (f x))) (λ a . a)) (λ b . b)) 所以这是一个接受参数f并返回另一个接受参数x并产生x对f应用的结果的函数。上述表达式的结果将为(λb.b)。 这让我想起了部分应用和柯里化,但是“内部外部...
我将翻译这段代码: f x y z = x^3 - g (x + g (y - g z) + g (z^2)) where g x = 2*x^2 + 10*x + 1 不使用where(或let)进行重写。 他们的意思是用Lambda函数(\ x ->...)来编写它。 我...
我对scheme函数式编程非常陌生。最近我在lambda演算中发现了Y组合子函数,类似于这个样子:Y ≡ (λy.(λx.y(xx))(λx.y(xx)))。我想在scheme中实现它,我搜索了很多但没有找到与上述结构完全匹配的实现。我找到一些实现,如下所示: (define Y (lamb...
我希望为布尔值和非运算符的lambda演算构造提供不同编程语言的实现。 这些包括: TRUE = lx.ly. x FALSE = lx.ly. y NOT = lx. x FALSE TRUE 在JavaScript和Python中执行这个任务非常简单,就像这样: var TRUE...
这个链接提供了Prolog中简单类型λ演算的简明定义。 看起来还不错,但作者试图给Y组合子分配一个类型……然而在很实际的意义上,添加类型到λ演算的整个目的就是拒绝为像Y组合子这样的事物分配类型。 有人能看出他的错误或者——更可能的是——我的误解在哪里吗?
似乎有一个强烈的运动将数学和计算机编程语言融合在一起,这在λ演算对现代语言的影响中得到了明显的证明。大多数时候,我不是用数学思考,而是用逻辑思考。在我看来,许多可以用数学建模的现象也可以用逻辑建模。 我不认为我们会看到纯逻辑语言或纯数学语言在通用编程方面占据主导地位,但我想列举出每种范式的好...
我在lambda演算中没有看到任何关于二进制数字的提及。Church数是一元系统。 我曾在这里提出过如何在Haskell中实现此操作的问题:How to implement Binary numbers in Haskell 但即使我看到并理解了那个答案,我仍然不知道如何在纯无类型lambda...