[英]How do I use !! in a function
當我查看haskell中的第n個元素時,我看到的只是人們指的是!! 符號
到目前為止,我如何在函數中使用它
module Main where
main :: IO ()
main = do
let line = [4.9.45.3]
print $ listofints line
listofints :: Int -> [Int]
listofints = \xs !! 2
我似乎從未想到過如何使用hoogle以及如何將列表從main傳遞給函數
任何幫助將不勝枚舉。
如何使用Hoogle:
您可以從Hoogle看到!!
的類型!!
是
(!!) :: [a] -> Int -> a
!!
采用列表a
S和一個Int
為指標。 由於函數名稱周圍有括號,因此!!
是一個中綴運算符,因此我們將其寫為
xs !! 3
請注意,如果我們將其包裝在括號中,則可以將其視為前綴運算符:
(!!) xs 3
如何從main
傳遞列表:
listofints
不接受列表,它返回一個列表。 因此,首先,您需要修復listofints
的簽名:
listofints :: [Int] -> Int
listofints xs = xs !! 2
要么
listofints = \xs -> xs !! 2
或者,以無點樣式:
listofints = (flip (!!) 2)
您的問題不在!!
操作員 它定義了一個函數,聲明了它的類型,顯然還寫了一個列表。
這是您使用!!
操作員:
items = [1,2,3,4]
secondItem = items !! 2
-- secondItem will be the number 3
我將剩下剩下的使程序正確無誤的工作交給您。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.