Haskell-此函数中的哪些参数?
有人能告诉我在这个函数中应用于map的两个参数吗,或者在这个函数中添加括号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函数应用程序
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)
。我觉得有必要添加:++是一个运算符,也像函数一样接受参数,但作为中缀运算符,优先级非常低。我觉得有必要添加:++是一个运算符,也像函数一样接受参数,但作为中缀运算符,优先级非常低。