函数式编程是一种基于使用函数构建抽象,避免副作用和状态变化的编程范例。纯函数编程是线程安全的。
假设这段代码: def main(args: Array[String]) { val func = (x: 字符串, y :字符串) => x + ", " + y println(myFunc(func)) } def myFunc(f: (字符串, 字符串) => 字符串) = { ...
当我尝试通过读取器 monad 转换器而不是通过函数参数传递 IO 操作时,类型系统的哪一部分会妨碍?
查看这个关于在 Haskell 中测试 IO 函数的旧问题的答案。 作为一种解决方案,它建议将 IO 操作作为参数传递给不硬编码 IO 的函数,但只是...
我一直在尝试将更多的函数式编程融入到我所做的事情中,因为我编写的代码具有无副作用的性质及其在并发代码中的实用性。我遇到了新...
我有许多返回 Option 值的函数,如下所示 案例类别 A() 案例类别 B() 案例类别 C() def optionA(): 选项[A] = 无 def optionB(): 选项[B] = Some(B()) def optionC():
我是 OCaml 新手,在理解模块类型如何工作方面遇到了一些困难。 模块类型 I = sig 类型t 结尾 模块 EQ (M : I) = 结构 设等于 (x : M.t) (y : M.t) = x = y 结尾 (*
在 Rust 中,没有函数的类型,而是 Fn 特征,如下所示: 特征 Fn { fn 调用(self, args: A) -> R; } 那么函数的类型可以...
在由 0 和 1 组成的 m x n 矩阵中,我们的任务是计算 4 个方向相连的 1 岛。 python的实现如下: def numIslands(网格): 绝对罪恶...
我正在寻找一个可以执行以下操作的函数: def self.my_find 对象 = self.first #Whatever 返回对象.my_check? ?对象:无 结尾 像检查这样的东西: 对象.check(&:my_...
使用数组时,经常需要中间表示 - 特别是与函数式编程相关,其中数据通常被视为不可变: 常量平方 = x ...
所以基本上我想写一个可以这样写的函数: { println(_) } =: 东西 在这里我希望它真正做事。=:(println(_))。为了论证,我们可以说 =: 有
Haskell 是否可以从另一种类型的值派生出一种类型,以便任何两个不同的值都会产生不同的类型?
上下文如下: newtype A = A 整数求导 (Eq) 数据 PairOfA = PairA A A 推导 (Eq) mkPairOfA :: [A] -> A -> A -> 也许 PairOfA mkPairOfA 作为 a1 a2 = 如果 a1 `elem` 为 &&a...
Haskell 中有没有一种方法可以用另一个类型的值参数化一个类型?
我有一个类型 A 和一个代表一对 A 的关联类型,具体来说是 (A, A)。我还有一个针对此对类型的智能构造函数,它采用一组 A 和 A 的两个值。构造...
我无法让这个例子工作 { $_ + $_ }, { $_ + 1}, {$_ - 1} | % { $_ 1 } 我希望它构造一个列表/数组/集合/任何函数(这部分很好),然后将该列表通过管道传输到...
在链接中使用数组方法之前如何避免Javascript迭代器计算
生成器/迭代器允许操作对象序列,而无需首先构建所有序列项。因此它可以节省机器上的内存空间。 数组方法,如 map、reduce、find、
作为 F# 公认的新手,我很难理解为什么会出现此错误。 这是我公认的琐碎且冗余的代码: 开放系统 开放系统全球化 让到上...
使用Enum.find_index/2,我们可以找到元素的索引。 但是,如果同一个元素出现多次,我们该怎么办呢? 我希望有这样的行为: iex> find_indexes(["a", "b", "c...
所以我再次拿起 Project Euler 来玩一下 Kotlin。对于那些不知道 Project Euler 的人来说,这是一个提供从平庸到相当困难的编程练习的网站。 无论如何,第一个
是否可以将 Lodash 数组方法与 es6 数组方法链接起来
我想在不使用 _chain 的情况下以函数式编程风格将 Lodash 数组方法与 ES6 数组方法互换链接。 我想这样做: 从 'lodash' 导入 {flatMap}; 常量...
在Java中,可以像这样声明和折叠无限流 List 收集 = Stream.iterate(0, i -> i + 2) .map(i -> i * 3) .filter(i -> i % 2 == 0) .限制(...
我是 Haskell 和函数式编程的新手。我正在尝试用 Haskell 编写 3 路合并排序算法。问题是,当我在 GHCi 中运行代码时,它只返回 *** 异常:堆栈溢出...