当我看到获得haskell中的第n个元素时,我看到的是人们所指的!! 符号
我如何在函数中使用它,到目前为止我已经尝试过了
module Main where
main :: IO ()
main = do
let line = [4.9.45.3]
print $ listofints line
listofints :: Int -> [Int]
listofints = \xs !! 2
Run Code Online (Sandbox Code Playgroud)
我似乎永远不会想到如何使用hoogle以及如何将列表从main传递给函数
任何帮助都会很有帮助.
如何使用Hoogle:
您可以从Hoogle看到的类型!!是
(!!) :: [a] -> Int -> a
Run Code Online (Sandbox Code Playgroud)
!!获取as和a的列表Int作为索引.由于函数名称周围有括号,这意味着它!!是一个中缀运算符,因此我们将其写为
xs !! 3
Run Code Online (Sandbox Code Playgroud)
请注意,如果我们将它包装在parens中,它可以被视为前缀运算符:
(!!) xs 3
Run Code Online (Sandbox Code Playgroud)
如何传递列表main:
listofints不采取列表,它会返回一个列表.首先,您需要修复以下签名listofints:
listofints :: [Int] -> Int
listofints xs = xs !! 2
Run Code Online (Sandbox Code Playgroud)
要么
listofints = \xs -> xs !! 2
Run Code Online (Sandbox Code Playgroud)
或者,以无点样式:
listofints = (flip (!!) 2)
Run Code Online (Sandbox Code Playgroud)