Haskell程式將陣列轉換為集合(HashSet)
在 Haskell 中,我們將透過使用 fromList、nub 和 foldr 函式將陣列轉換為集合 (HashSet)。在第一個示例中,我們將使用 (let set = Set.fromList arr),在第二個示例中,我們將使用 (let set = nub arr)。在第三個示例中,我們將使用 (let set = foldr Set.insert Set.empty arr)。
演算法
步驟 1 - 匯入 Data.Set 模組以處理集合。
步驟 2 - 程式執行將從 main 函式開始。main() 函式控制整個程式。它寫成 main = do。
步驟 3 - 使用一些值初始化陣列。
步驟 4 - 使用 fromList 函式將陣列轉換為集合,並初始化名為“set”的集合,如下所示:
let set = Set.fromList arr.
步驟 5 - 使用 print 函式將結果集合列印到控制檯。
示例 1
在此示例中,我們首先匯入 Data.Set 模組,該模組提供基於平衡二叉樹的集合實現。然後,我們定義一個名為 arr 的陣列,其中包含一些元素,包括重複元素。然後,我們使用 Set 模組的 fromList 函式從陣列中的元素建立一個名為 set 的集合。最後,我們使用 print 函式列印集合。
import qualified Data.Set as Set main :: IO () main = do let arr = [1, 2, 3, 2, 1, 4] let set = Set.fromList arr print set
輸出
fromList [1,2,3,4]
示例 2
在此示例中,我們首先匯入 Data.List 模組,該模組提供各種列表操作函式。然後,我們定義一個名為 arr 的陣列,其中包含一些元素,包括重複元素。然後,我們使用 Data.List 模組中的 nub 函式從陣列中刪除重複元素並建立一個名為 set 的新列表。最後,我們使用 print 函式列印列表。
import Data.List (nub) main :: IO () main = do let arr = [1, 2, 3, 2, 1, 4] let set = nub arr print set
輸出
[1,2,3,4]
示例 3
在此示例中,我們首先匯入 Data.Set 模組,該模組提供基於平衡二叉樹的集合實現。然後,我們定義一個名為 arr 的陣列,其中包含一些元素,包括重複元素。然後,我們使用 foldr 函式將陣列的每個元素插入一個新的集合中,從一個空集合開始。insert 函式將元素插入集合,empty 函式建立空集合。最後,我們使用 print 函式列印集合。
import qualified Data.Set as Set main :: IO () main = do let arr = [1, 2, 3, 2, 1, 4] let set = foldr Set.insert Set.empty arr print set
輸出
fromList [1,2,3,4]
結論
在 Haskell 中,陣列是相同型別元素的集合,由整數索引。集合是不同元素的集合,可用於有效地檢查成員資格和刪除重複項。HashSet 是一種特定型別的集合,它使用雜湊函式將元素對映到儲存桶陣列,在許多情況下允許常數時間訪問元素。將陣列轉換為集合 (HashSet) 涉及從陣列中刪除重複項並將每個唯一元素新增到新集合中。在 Haskell 中,有多種方法可以執行此轉換,具體取決於所需的實現和需求。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP