我是 Haskell 的新手,我無法理解“Null $ filter”這件事。
isPrime n
| n < 2 = error "Zu kleine Zahl fuer Primzahltest"
| otherwise = null $ filter (\k -> n `mod` k == 0) [2.. n-1]
uj5u.com熱心網友回復:
該($) :: (a -> b) -> a -> b操作員施加右運算元向左運算元。因為它的優先級低,所以它被用作“分組”運算式的一種方式。因此,該運算式等效于:
-- null $ filter (\k -> n `mod` k == 0) [2.. n-1]
null ( filter (\k -> n `mod` k == 0) [2.. n-1] )
null :: Foldable f => f a -> Bool是一個檢查 aFoldable是否沒有元素的函式。因此,對于串列,True如果串列為空,它將回傳,False否則回傳。
該串列包含k介于2和之間的整數,n-1其中n `mod` k是0,因此是 的除數n。null因此,通過使用我們檢查該數字n是否沒有除數,如果是這種情況,我們回傳True;否則我們回傳False。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/404596.html
標籤:
