相关疑难解决方法(0)

如何编写使布尔型返回一个功能的功能

我在这里发现了一个类似的问题,询问的几乎是同一件事,但并非完全相同。

我的问题是如何将类型(a-> Bool)的函数列表组合为也是(a-> Bool)的一个函数。

例如

compose :: [(a -> Bool)] -> (a -> Bool)
compose []     = **?**
compose (x:xs) = x **?** compose xs
Run Code Online (Sandbox Code Playgroud)

与此类似的问题是采用三个功能并将它们混合在一起,如下所示:

newFunction x f g y = f x || g x || y x
Run Code Online (Sandbox Code Playgroud)

但这非常有限,因为您必须提供特定数量的函数,并且它不返回另一个函数,而是返回布尔值。我本质上想要一个函数,该函数可以为我提供上面的函数,而没有函数作为参数。

我尝试弄乱Monoids来完成这项工作,但首先遇到了将函数包装到Monoid中的问题,更不用说像newFunction一样将它们组合在一起了。

有没有一种方法可以将相同类型的功能列表(a-> Bool)组成一个相同类型的功能?

haskell functional-programming monoids

6
推荐指数
3
解决办法
142
查看次数

在Haskell中应用函数列表

我写了一个函数,它将一个函数列表应用于一个项目.

applyAll :: [a -> b] -> a -> [b]
applyAll [] _ = []
applyAll (f:fs) x = (f x) : (applyAll fs x)
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?

haskell

4
推荐指数
3
解决办法
2244
查看次数

标签 统计

haskell ×2

functional-programming ×1

monoids ×1