8得票3回答
函数应用:为什么这里要使用$符号?

前段时间,我在Stack Overflow上问了一个关于$符号的问题,得到了很有用的答案--事实上,我认为我已经理解如何使用它。 但是似乎我错了:( 这个例子出现在教程中: instance Monad [] where xs >>= f = concat . map ...

8得票3回答
适用于对单个输入应用两个函数的无参(或库)函数

我经常重复使用lambda表达式,例如 \x -> (f x, g x) 当我将相同的输入应用于两个函数并将结果封装在一对中时。我可以编写一个捕获此内容的函数 combine :: (a -> b) -> (a -> c) -> a -> (b,c)...

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

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

8得票2回答
这是 JavaScript 中函数式镜头的位置吗?

我正在玩耍使用无参数风格的JavaScript,只是为了好玩。 假设我正在编写视频游戏Diablo,并且正在使用类似以下但更深层次和更复杂的嵌套类型来建模敌人: { name: "badguy1", stats: { health: 10: strength: 42 }, pos: {x:...

8得票2回答
点无符号表示法,递归和模式匹配

我听说了很多关于点无编程的内容,所以我决定进行一个小实验来测试自己对它的掌握程度。这个实验涉及到将一个指向函数来计算一个数字的阶乘转换为点无形式。我成功地完成了它,但是点无结果比指向结果更难读懂。 -- pointed fact 0 = 1 fact n = n * (fact (n-1))...

8得票2回答
Haskell:为什么((.).(.)) f g等同于f.g x?

您能解释一下表达式 ((.).(.)) 的含义吗?据我所知,(.) 具有类型 (b -> c) -> (a -> b) -> a -> c。

8得票2回答
有没有一种方法可以在Haskell中使h(f x)(g x)变为无点形式?

我想要类似J的fork功能。有没有办法实现这个功能?

7得票4回答
Haskell函数组合 - (a -> b) -> (a -> c) -> (b -> c -> d) -> (a -> d)

我希望学习如何使用point-free方式完成以下操作: withinBounds :: [Int] -> Bool withinBounds xs = (all (>= 0) xs) && (all (<= 8) xs) 我知道为了易读性和代码的清晰度...

7得票2回答
无点调试

所以我们在工作中使用非常好的 Ramda 库,这很棒,因为我们能够使用大量无点样式的代码。但问题在于,当发生运行时错误时,很少有地方指向我们代码中的某些内容;大多数运行时错误是由于组合 Ramda 函数的误用而引起的。如果将这些函数传递给使用了许多重定向(如 React/Redux)的框架,则...

7得票2回答
玩弄无点代码?

我一直在学习Factor和J语言,以尝试使用无点编程进行实验。这些语言的基本机制似乎很清楚,但是如何设计算法还是有挑战的。 对我而言,一个特别令人困惑的问题是如何构建代码,使得容易对不同参数进行实验。我指的是Mathematica和Matlab擅长的类型;您设置一个算法,然后操作变量并观察发...