簡體   English   中英

我怎么用! 在功能上

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM