为什么 Curry 的 std lib 中的非确定性选择函数没有直接定义,而是使用辅助 2 参数函数定义?
考虑 Curry 编程语言 中的一个函数 choose,其规范为“(choose xs) 非确定性地从列表 xs 中选择一个元素”。 我将通过两个替代的非确定性规则直接实现…
有人知道上下文环境(CE)机器(解释器)吗?
我目前正在研究使用 Context-Environment 机器进行 lambda 演算的小步语义。 在这种机器中,或者说解释器中,闭包的定义是开放的 lambda 术语与定义闭…
在急切求值中重用不可变状态的内存?
我正在研究纯函数式语言,目前正在考虑一些不可变数据的实现。 这是一个伪代码。 List a = [1 .. 10000] List b = NewListWithoutLastElement a b 在…
如何在 Haskell 中将树数据结构保存到二进制文件
我正在尝试使用 Haskell 将一个简单(但相当大)的树结构保存到二进制文件中。结构看起来像这样:-- For simplicity assume each Node has only 4 chi…
使用列表理解的列表的子列表
就这么简单。我想使用列表理解生成列表的所有子列表。 即: getSublist [1,2,3] 为 [[1], [2], [3], [1,2], [1,3], [2, 3], [1,2,3]] 谢谢…
F# 中列表中的 Task.WaitAll
我正在使用 F# 进行并行编程。对于固定数量的元素,例如 2 个元素 a1、a2 和一个函数 f,我可以执行以下操作: let t1 = Task.Factory.StartNew(fun (…
Erlang 中不正确列表的实际使用(也许是所有函数式语言)
我一直在阅读《Erlang 和 OTP 的实际应用》,并偶然发现了一个有关不正确列表的问题。 不要试图使用列表单元格 这样即使你认为你有 聪明的主意——它…
在 Haskell 中将元组的元素作为参数提供给函数?
在我的 Haskell 程序中,我想使用 printf 来格式化元组列表。我可以将 printf 映射到一个列表上,一次打印一个值,如下所示: mapM_ (printf "Value: …
在 Python 中,部分函数应用(柯里化)与显式函数定义
在 Python 中,是否认为更好的风格是: 根据更通用的、可能是内部使用的函数显式定义有用的函数;或者, 使用偏函数应用来显式描述函数柯里化? 我将…
如何在 C# 中组合委托
我想实现一个方法,该方法接受两个 Action A1 和 Action A2 委托并返回将它们组合在一起的新委托。该方法的签名如下: public static Action> Combine…
在特征(或类)方法之间遍历
trait t{ val y = "z" def t1(x:String):String=x+"a"+y def t2(x:String):String= x+"b"+y def t3(x:String):String= x+"c"+y } class c extends t {…