7得票2回答
能否有人解释一下 ((.)$(.)) (==) 1 (1+) 0 的含义?

我在 Haskell.org 上发现了这个点无风格函数,被称为“the owl”。 ((.)$(.)) 它的类型签名是 (a -> b -> c) -> a -> (a1 -> b) -> a1 -> c。 它等价于 f a b c...

10得票5回答
无参风格和使用$符号

如何将$和点自由样式结合起来使用? 下面是一个清晰的实用函数示例:times :: Int -> [a] -> [a] times n xs = concat $ replicate n xs 只是编写concat $ replicate会产生错误,同样你也不能编写conca...

11得票5回答
使用 Ramda 实现的无参风格大写函数

尽管编写一个将单词首字母大写的函数是很容易的,例如: "hello" => "Hello" "hi there" => "Hi there" 但如何使用Ramda JS以点无式样式编写它呢? https://en.wikipedia.org/wiki/Tacit_programming

52得票2回答
在 Haskell 中,(f .) . g 意味着什么?

我曾经见过很多函数都是按照 (f .) . g 这种模式定义的。例如:countWhere = (length .) . filter duplicate = (concat .) . replicate concatMap = (concat .) . map 这是什么意思?

25得票4回答
在Scala中使用无点样式的理由

对于函数式编程专家来说,这可能看起来非常明显,但是点无风格在Scala中有什么好处呢?一个能够真正让我相信的例子是,展示如何使用点无风格比非点无风格解决同一问题的代码在某些方面(例如性能、优雅性、可扩展性、可维护性)显着更好。

14得票1回答
可变参数组合函数?

我正在尝试编写一个可变参数函数组合函数。它基本上相当于 (.),只是第二个参数函数是可变参数的。这应该允许像下面这样的表达式:map even . zipWith (+) 或者只是map even . zipWith 目前我所达到的效果需要添加 IncoherentInstances,并且需要...

9得票1回答
一个常见的涉及函数组合的模式 (\a b -> f (g a) (g b))。

组合函数f和g的形式如下 f :. g = \a b -> f (g a) (g b) 这是我在代码中经常发现的一种模式。它类似于一元函数组合,只不过f是二元函数,我希望在将参数传递给f之前对两个参数都应用g。 当我要求lambdabot将其转换为点-自由形式时,我得到了奇怪的咒...

8得票5回答
点自由风格下编写函数的通用方案是什么?

我目前正在完成20 Intermediate Haskell Exercises,这是一项非常有趣的练习。它涉及实现各种类型类Functor和Monad的实例(以及将Functor和Monad作为参数的函数),但使用了可爱的名称如Furry和Misty来掩盖我们正在做什么(这使得代码变得有趣)...

10得票3回答
任何函数都可以转化为无点形式吗?

许多函数可以简化为无参数形式,但是否所有函数都可以这样做呢? 例如,我不知道如何对以下函数进行简化:apply2 f x = f x x

28得票5回答
翻转/反转fmap (<$>)?

我发现定义如下内容(%) = flip fmap 我可以像这样编写代码:readFile "/etc/passwd" % lines % filter (not . null) 对我来说,这比另一种选择更有意义:filter (not . null) &lt;$&gt; lines &lt;...