7得票3回答
在Haskell或其他编程语言中,是否可能编写仅表示闭合项的数据结构或数据结构?

使用De Bruijn符号,可以将lambda项定义为: data BTerm = BVar Int | BLam BTerm | BApp BTerm BTerm 或者使用常规符号, data Term = Var String | Lam String Term | App Term...

7得票1回答
在未类型化的lambda演算中,是否有可能有效地实现`max`函数?

min通常在未类型化的lambda演算中定义,使用Caramel语法: sub a b = (b pred a) <= a b = (is_zero (sub b a)) min a b = (<= a b a b) 这样做效率非常低。由于它应用了线性的pred...

7得票1回答
Lambda演算表达式实现函数应用

我发现了以下的lambda演算表达式: (((λ f . (λ x . (f x))) (λ a . a)) (λ b . b)) 所以这是一个接受参数f并返回另一个接受参数x并产生x对f应用的结果的函数。上述表达式的结果将为(λb.b)。 这让我想起了部分应用和柯里化,但是“内部外部...

7得票6回答
在Haskell中重复使用Lambda函数

我将翻译这段代码: 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 ->...)来编写它。 我...

7得票1回答
Y Combinator 的 Scheme 实现

我对scheme函数式编程非常陌生。最近我在lambda演算中发现了Y组合子函数,类似于这个样子:Y ≡ (λy.(λx.y(xx))(λx.y(xx)))。我想在scheme中实现它,我搜索了很多但没有找到与上述结构完全匹配的实现。我找到一些实现,如下所示: (define Y (lamb...

7得票1回答
C中的lambda演算:布尔和非运算符

我希望为布尔值和非运算符的lambda演算构造提供不同编程语言的实现。 这些包括: TRUE = lx.ly. x FALSE = lx.ly. y NOT = lx. x FALSE TRUE 在JavaScript和Python中执行这个任务非常简单,就像这样: var TRUE...

7得票2回答
打印Y组合子

这个链接提供了Prolog中简单类型λ演算的简明定义。 看起来还不错,但作者试图给Y组合子分配一个类型……然而在很实际的意义上,添加类型到λ演算的整个目的就是拒绝为像Y组合子这样的事物分配类型。 有人能看出他的错误或者——更可能的是——我的误解在哪里吗?

7得票4回答
数学和编程语言的融合

似乎有一个强烈的运动将数学和计算机编程语言融合在一起,这在λ演算对现代语言的影响中得到了明显的证明。大多数时候,我不是用数学思考,而是用逻辑思考。在我看来,许多可以用数学建模的现象也可以用逻辑建模。 我不认为我们会看到纯逻辑语言或纯数学语言在通用编程方面占据主导地位,但我想列举出每种范式的好...

7得票2回答
在λ演算中编码二进制数值

我在lambda演算中没有看到任何关于二进制数字的提及。Church数是一元系统。 我曾在这里提出过如何在Haskell中实现此操作的问题:How to implement Binary numbers in Haskell 但即使我看到并理解了那个答案,我仍然不知道如何在纯无类型lambda...

7得票2回答
学习lambda演算的先决条件

有人能告诉我学习λ演算的先决条件是什么吗?(如果有的话)