标签: higher-order-functions

Scala:高阶函数中函数参数的默认值

我有高阶函数:

\n
def\xc2\xa0calculateFusionRiskContract(postCalc:\xc2\xa0DataFrame\xc2\xa0=>\xc2\xa0DataFrame) \n
Run Code Online (Sandbox Code Playgroud)\n

如何设置仅返回 postCalc 参数的 postCalc 参数的默认值?没有任何计算?

\n
def\xc2\xa0calculateFusionRiskContract(postCalc:\xc2\xa0DataFrame\xc2\xa0=>\xc2\xa0DataFrame = ???) \n
Run Code Online (Sandbox Code Playgroud)\n

scala default-value higher-order-functions

0
推荐指数
1
解决办法
71
查看次数

如何在python中实现像sum(2)(3)(4)......(n)这样的函数?

如何实现一个将sum_numbers(2)(3)(4)......(n) 在python 中以下列方式调用的函数?

结果应该是 2+3+4+.....+n

我的提示是因为函数是pythons中的对象,有可能使用嵌套函数来做那些但我不确定.

def sum_number(x):
    def sum_number_2(y):
        def sum_number_3(z):
        ....................
            def sum_number_n(n)
                return n
            return sum_number_n
        return sum_number_3
    return sum_number_2
  return sum_number
Run Code Online (Sandbox Code Playgroud)

但是,不是编写这么多嵌套函数,我们应该能够在几个嵌套函数中执行它,以便在以下列方式调用时计算n个值的总和 sum_numbers(2)(3)(4)......(n)

python functional-programming higher-order-functions

-1
推荐指数
2
解决办法
181
查看次数

正确实现foldl1

哈斯克尔维基教科书提供了一个

foldl1           :: (a -> a -> a) -> [a] -> a
foldl1 f (x:xs)  =  foldl f x xs
foldl1 _ []      =  error "Prelude.foldl1: empty list"
Run Code Online (Sandbox Code Playgroud)

那不起作用.我试着编译它的这个版本:

myFoldl1           :: (a -> a -> a) -> [a] -> a
mFoldl1 f (x:xs)  =  myFoldl1 f x xs
myFoldl1 _ []      =  error "Prelude.foldl1: empty list
Run Code Online (Sandbox Code Playgroud)

我首先想到的是缺少一个结束折叠的案例,并且输入有问题

foldl1 _ [x] = x
foldl1 f (x:xs)  =  foldl (f x) xs
Run Code Online (Sandbox Code Playgroud)

但这也不会奏效.我认为类型问题更深入,但我没有足够的把握Haskell进一步思考.有人可以帮我吗?

haskell fold higher-order-functions

-1
推荐指数
1
解决办法
902
查看次数

为什么Array.length返回的数字大于实际的最高数组索引?javascript不是从0开始计数吗?

作为Array类型实例的对象的length属性设置或返回该数组中元素的数量。该值是一个无符号的32位整数,在数值上总是大于数组中的最高索引。

let array = [1, 2, 3];
console.log(array.length);
Run Code Online (Sandbox Code Playgroud)

输出= 3

javascript higher-order-functions

-1
推荐指数
1
解决办法
60
查看次数

你如何使用折叠图解决这个Haskell问题并采取?

定义一个函数复制,给定一个数字列表返回一个列表,每个数字都复制其值.使用折叠,地图和拍摄

..>复制[5,1,3,2,8,1,2]

产量:[5,5,5,5,5,1,3,3,3,2,2,8,8,8,8,8,8,8,8,1,2,2]

我已经使用List理解和递归来解决这个问题:

replicate2 [] = []
replicate2 (n:nn) = take n(repeat n) ++ replicate2 nn
Run Code Online (Sandbox Code Playgroud)

但是你如何使用折叠和地图来做到这一点?到目前为止我有:复制n = map(foldl1(取n(重复n))n)n这显然是错误的,但我想我很接近..

所以任何帮助都会很好,谢谢!

haskell higher-order-functions

-2
推荐指数
1
解决办法
995
查看次数

变量不在 Haskell 的范围内。这是什么意思?

filter :: (a -> Bool) -> [a] -> [a]
filter =  (\x -> x % 2 == 0) [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)

运行时在 Haskell 中使用下面的代码我得到一个错误:'变量不在范围内:(%) :: [Integer] -> Bool -> (a -> Bool) -> [a] -> [a]'

这是什么意思 ?

我试图创建一个接受列表并返回偶数的函数。对 haskell 如此陌生,这就是我所管理的,但我仍然遇到错误。我用谷歌搜索但我找不到解决方案

haskell functional-programming higher-order-functions

-2
推荐指数
1
解决办法
82
查看次数