Haskell 程式將列表轉換為集合
Haskell 程式設計具有 fromList、Set.fromList 和 foldr 等內部函式,可用於將列表轉換為集合。在第一個示例中,我們將使用 (listToSet = Set.fromList) 函式,在第二個示例中,我們將直接從 main 函式呼叫 (set = Set.fromList xs) 函式。而在第三個示例中,我們將使用 (listToSet = foldr Set.insert Set.empty) 函式。
演算法
步驟 1 - 匯入限定的 Data.Set 模組。
步驟 2 - 使用 fromList 函式定義 listToSet 函式,如下所示:
listToSet = Set.fromList。
步驟 3 - 程式執行將從 main 函式開始。main() 函式控制整個程式。它寫成 main = do。
步驟 4 - 定義變數 'xs',它將儲存要轉換為集合的列表值。
步驟 5 - 呼叫函式後,將對應於列表值的最終集合值列印到控制檯。
示例 1
在此示例中,使用 fromList 函式將列表轉換為集合。
import qualified Data.Set as Set
listToSet :: Ord a => [a] -> Set.Set a
listToSet = Set.fromList
main :: IO ()
main = do
let xs = [1, 2, 3, 2, 1, 4]
set = listToSet xs
putStrLn $ "List: " ++ show xs
putStrLn $ "Set: " ++ show (Set.toList set)
輸出
[1 of 1] Compiling Main ( main.hs, main.o ) Linking main ... List: [1,2,3,2,1,4] Set: [1,2,3,4]
示例 2
在此示例中,使用 main 函式中的 fromList 函式將列表轉換為集合。
import qualified Data.Set as Set
main :: IO ()
main = do
let xs = [1, 2, 3, 2, 1, 4]
set = Set.fromList xs
putStrLn $ "List: " ++ show xs
putStrLn $ "Set: " ++ show (Set.toList set)
輸出
[1 of 1] Compiling Main ( main.hs, main.o ) Linking main ... List: [1,2,3,2,1,4] Set: [1,2,3,4]
示例 3
在此示例中,使用使用者定義函式使用 fromList 函式將列表轉換為集合。
import qualified Data.Set as Set
listToSet :: Ord a => [a] -> Set.Set a
listToSet xs = Set.fromList [x | x <- xs]
main :: IO ()
main = do
let xs = [1, 2, 3, 2, 1, 4]
set = listToSet xs
putStrLn $ "List: " ++ show xs
putStrLn $ "Set: " ++ show (Set.toList set)
輸出
[1 of 1] Compiling Main ( main.hs, main.o ) Linking main ... List: [1,2,3,2,1,4] Set: [1,2,3,4]
示例 4
在此示例中,使用 foldr 函式將列表轉換為集合。
import qualified Data.Set as Set
listToSet :: Ord a => [a] -> Set.Set a
listToSet = foldr Set.insert Set.empty
main :: IO ()
main = do
let xs = [1, 2, 3, 2, 1, 4]
set = listToSet xs
putStrLn $ "List: " ++ show xs
putStrLn $ "Set: " ++ show (Set.toList set)
輸出
[1 of 1] Compiling Main ( main.hs, main.o ) Linking main ... List: [1,2,3,2,1,4] Set: [1,2,3,4]
結論
在 Haskell 中,列表是有序的相同型別元素的集合,而集合是相同型別不同元素的無序集合。將列表轉換為集合的過程包括刪除任何重複項並對剩餘元素進行排序。Haskell 提供了 Data.Set 模組,該模組定義了 Set 型別和用於處理集合的多個函式。要將列表轉換為集合,我們通常使用 Data.Set 模組中的 fromList 函式。我們也可以使用 foldr 函式進行此轉換。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP