Python中的Pointfree函数组合
我有一些谓词,例如: is_divisible_by_13 = lambda i: i % 13 == 0 is_palindrome = lambda x: str(x) == str(x)[::-1] 并希望将它们逻辑地组合为: …
以 pointfree 风格编写函数的一般方案是什么?
我现在正在做20个中级Haskell练习,这是一个非常有趣的练习。它涉及实现类型类 Functor 和 Monad 的各种实例(以及将 Functor 和 Monad 作为参数的函…
Haskell 中 Pointfree 风格的元素数量
我想定义一个函数来计算列表中满足给定谓词的元素数量: number_of_elements :: (a -> Bool) -> [a] -> Int number_of_elements f xs = length (filte…
将运算符与 zipWithN 一起使用
比如说,我们可以这样写: zipWith (,) [1,2,3] [4,5,6] 如果我们想要元组 3 列表,我们可以写: zipWith3 (,,) [1,2,3] [4,5,6] [7,8,9] 我们还可以…
在 Haskell 中对布尔函数执行“and”和“or”
我刚刚编写了以下两个函数: fand :: (a -> Bool) -> (a -> Bool) -> a -> Bool fand f1 f2 x = (f1 x) && (f2 x) f_or :: (a -> Bool) -> (a -> Bool…
如何使用 Monad 的 (->) 实例以及关于 (->) 的困惑
在不同的问题上,我在评论中找到了有关使用 Monad 的 (->) 实例的提示,例如用于实现无点样式。 对于我来说,这有点太抽象了。好的,我在 (->) 上看到…
“重用”的技巧Haskell 中的争论?
有时我会偶然发现我想要表达的问题“请使用最后一个参数两次”,例如为了编写 pointfree 风格或避免 lambda。例如 sqr x = x * x 可以写成 sqr = doub…