Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Computer science 映射和筛选的函数是否有合适的名称?_Computer Science - Fatal编程技术网

Computer science 映射和筛选的函数是否有合适的名称?

Computer science 映射和筛选的函数是否有合适的名称?,computer-science,Computer Science,如果我有一个接受元素序列的高阶函数和一个映射和过滤元素的输入函数,有合适的名称吗?可以并行处理序列的元素,因此输入函数不能依赖元素之间的状态。因此,高阶函数的名称不是reduce或fold 在Haskell中,它被称为mapMaybe,但这个名称与Maybe类型联系太紧密 编辑: 我只是想澄清一下,我并不是在问任何关于Haskell或任何其他特定编程语言的问题。我问的是跨越编程语言的术语。为什么你说它不是一个折叠 foldr f[]xs可以执行“映射和筛选”: fpn=如果p也许b你为什么用Ha

如果我有一个接受元素序列的高阶函数和一个映射和过滤元素的输入函数,有合适的名称吗?可以并行处理序列的元素,因此输入函数不能依赖元素之间的状态。因此,高阶函数的名称不是reduce或fold

在Haskell中,它被称为mapMaybe,但这个名称与Maybe类型联系太紧密

编辑:
我只是想澄清一下,我并不是在问任何关于Haskell或任何其他特定编程语言的问题。我问的是跨越编程语言的术语。

为什么你说它不是一个折叠

foldr f[]xs可以执行“映射和筛选”:

fpn=如果p<0,则n
else(sqrt p):n

过滤掉负数并将其余的映射到数字的sqrt。

我说它不是折叠,因为折叠太一般了。它可以保持元素之间的状态,因此不能并行执行。@Gurgeh执行的并行性不依赖于折叠;这只取决于功能。例如,如果函数是单倍体乘法,那么它是可并行的。哦,顺便说一句,map f=foldr((:).f)[]。(:)是这里的单项式乘法(是(++)的一个特例)。折叠可以做各种事情,例如表示映射。这并不意味着映射应该称为折叠。映射是褶皱的特化。就像褶皱是一种特化作用一样。我感兴趣的是一个高阶函数的名称,它可以映射和过滤,但不是一般的折叠。“就像mapMaybe一样。”古吉说,那一定是mapMaybe。无论是映射值还是过滤值,都必须有一种方法向高阶函数发送信号。类型可能会将此额外点添加到任何类型。所以你传递给它的函数必然是->也许b你为什么用Haskell来思考?我想问的是,通常应该调用什么样的高阶函数(其工作原理与Haskell中的mapMaybe完全相同)。MapMaybe显然不是一个好名字,因为它与Haskells-Maybe类型有关,而其他编程语言无法实现它。计算机科学(见标签)是否有一个通用名称来指定这样的功能?它是一个“转换”。@rbaryyoung你有参考资料吗?在大多数语言/库中,我认为转换只意味着映射。
f p n = if p < 0 then n
        else (sqrt p):n