Erlang 中的 S 组合器
我开始学习 lambda 演算,我需要在 Erlang 中实现 I、S、K 组合器。 当然,S、K、I代表: S = λxyz.xz(yz) K = λxy.x I = λx.x 我可以毫无问题地理…
将 Lambda 表达式转换为方案
我有这个 lambda lambda 表达式: λx.(λy.(λz.x(yz))) 我正在尝试用它编写一个方案表达式。 我这样做了: (define (f x)(lambda(y z) (f (y z)))) …
使用 Boost.Bind 表达教堂数字
教堂数字可以用 C++0x(C++11?)使用该语言的新 lambda 部分来表示,例如 this: typedef function F; static const F id = [=](int x) { return x; …
main函数返回值的lambda表达式
在具体情况下,像这样, f(x) { return x+5; } g(x, y) { return 2*x + y; } main() { return f(g(1, 2)); } 函数main的返回值的lambda表达式是什么?…
Haskell中教堂数字的减法
我正在尝试在 Haskell 中实现教堂数字,但遇到了一个小问题。 Haskell 通过 Occurs 检查抱怨无限类型 :无法构造无限类型:t = (t -> t1) -> (t1→t2)…
Haskell 中的教堂数字
我正在尝试使用以下定义在 haskell 中打印教堂数字: 0 := λfx.x 1 := λfx.f x Haskell 代码: c0 = \f x -> x c1 = \f x -> f x 当我在 haskell 控…
调用/应用 lambda 与函数调用 - Ruby 中的语法是不同的。为什么?
我对 Ruby 还算陌生,并且仍在尝试了解一些语言设计原则。如果我没猜错的话,那么 Ruby 中的 lambda 表达式调用必须使用方括号,而“常规”函数调用则…
lambda 演算中的按值调用
我正在研究类型和编程语言,以及 Pierce,用于按值缩减策略调用,给出术语id(id(λz.id z))的示例。内部 redex id (λz.id z) 被简化为 λz.id z。首…
是否有可能构建一个相对较快的无类型 lambda 演算机?
纯无类型 lambda 演算是一个强大的概念。然而,构建一台供现实世界使用的机器或解释器通常被描述为(接近)不可能。我想对此进行调查。理论上是否可以…
lambda 演算中的迭代函数
我有一个这样的函数, iter :: Int -> (a -> a) -> a -> a iter n f a = f (f ... (f a) .. ) 如何在非类型化 lambda 演算中定义这样的函数? 任何提…
一阶参数多态性和一阶函数
我正在阅读论文 Generics of a Higher Kind,第一句话是 使用 Java 5 和 C# 2.0,一阶 引入参数多态性 在主流的面向对象中 名称下的编程语言 泛型。 …
将函数的第一个参数旋转为第 n 个
给定一个至少具有 n 个参数的函数,我想旋转第一个参数,使其成为第 n 个参数。例如(在无类型 lambda 演算中): r(λa. a) = λa. a r(λa. λb. a …