Haskell-此函数中的哪些参数?

Haskell-此函数中的哪些参数?,haskell,arguments,Haskell,Arguments,有人能告诉我在这个函数中应用于map的两个参数吗,或者在这个函数中添加括号 pad n ys = map Just ys ++ replicate k Nothing where k = n - (length ys `mod` n) 谢谢 函数应用程序绑定非常紧密: map Just ys ++ replicate k Nothing 解析为: (map Just ys) ++ (replicate k Nothing) 也就是说,函数是构造函数只是,容器/列表是ys函数应用程序

有人能告诉我在这个函数中应用于map的两个参数吗,或者在这个函数中添加括号

pad n ys = map Just ys ++ replicate k Nothing
    where k = n - (length ys `mod` n)

谢谢

函数应用程序绑定非常紧密:

map Just ys ++ replicate k Nothing
解析为:

(map Just ys) ++ (replicate k Nothing)

也就是说,函数是构造函数
只是
,容器/列表是
ys

函数应用程序绑定得非常紧密:

map Just ys ++ replicate k Nothing
解析为:

(map Just ys) ++ (replicate k Nothing)

也就是说,函数是构造函数
只是
,容器/列表是
ys

在这种情况下,您可以通过考虑类型来确定它:

Prelude> pad n ys = map Just ys ++ replicate n Nothing
Prelude> :t pad
pad :: Int -> [a] -> [Maybe a]

Prelude> pad n ys = map Just (ys ++ replicate n Nothing)
Prelude> :t pad
pad :: Int -> [Maybe a] -> [Maybe (Maybe a)]

Prelude> pad n ys = (map Just ys) ++ (replicate n Nothing)
Prelude> :t pad
pad :: Int -> [a] -> [Maybe a]

在这种情况下,您可以通过考虑以下类型来确定:

Prelude> pad n ys = map Just ys ++ replicate n Nothing
Prelude> :t pad
pad :: Int -> [a] -> [Maybe a]

Prelude> pad n ys = map Just (ys ++ replicate n Nothing)
Prelude> :t pad
pad :: Int -> [Maybe a] -> [Maybe (Maybe a)]

Prelude> pad n ys = (map Just ys) ++ (replicate n Nothing)
Prelude> :t pad
pad :: Int -> [a] -> [Maybe a]

函数调用是最高优先级的运算符,因此…
map
应用于
Just
ys
它是
(map Just ys)+(replicate k Nothing)
。函数调用是最高优先级的运算符,因此…
map
应用于
Just
ys
它是
(map Just ys)+(复制k Nothing)
。我觉得有必要添加:++是一个运算符,也像函数一样接受参数,但作为中缀运算符,优先级非常低。我觉得有必要添加:++是一个运算符,也像函数一样接受参数,但作为中缀运算符,优先级非常低。