Haskell程式:將字串集合轉換為字串陣列
在Haskell中,我們可以使用`listArray`和`toList`函式以及列表推導式將字串集合轉換為字串陣列。在第一個示例中,我們將使用`(setToArray set = listArray (1, Set.size set) (Set.toList set))`函式;在第二個示例中,我們將直接從主函式呼叫`(setToArray set = listArray (1, Set.size set) (toList set))`函式;在第三個示例中,我們將使用`(setToArray set = array (1, Set.size set) [(i, x) | (i, x) <- zip [1..] (Set.toList set)])`函式。
演算法
步驟1 − 匯入`Data.Set`和`Data.Array`模組。
步驟2 − 使用`listArray`函式定義`setToArray`函式。
步驟3 − 程式執行將從`main`函式開始。`main()`函式控制整個程式。它寫成`main = do`。
步驟4 − 定義名為“set”的變數,它將儲存要轉換為陣列的字串集合。
步驟5 − 呼叫函式後,將相應的字串陣列集合列印到控制檯。
示例1
在這個例子中,使用`listArray`函式將字串集合轉換為字串陣列。
import qualified Data.Set as Set
import Data.Array
setToArray :: Set.Set String -> Array Int String
setToArray set = listArray (1, Set.size set) (Set.toList set)
main :: IO ()
main = do
let set = Set.fromList ["apple", "banana", "cherry", "banana", "apple"]
array = setToArray set
putStrLn $ "Set: " ++ show (Set.toList set)
putStrLn $ "Array: " ++ show (elems array)
輸出
[1 of 1] Compiling Main ( main.hs, main.o ) Linking main ... Set: ["apple","banana","cherry"] Array: ["apple","banana","cherry"]
示例2
在這個例子中,使用`listArray`和`toList`函式將字串集合轉換為字串陣列。
import qualified Data.Set as Set
import Data.Foldable (toList)
import Data.Array (Array, listArray)
setToArray :: Set.Set String -> Array Int String
setToArray set = listArray (1, Set.size set) (toList set)
main :: IO ()
main = do
let mySet = Set.fromList ["apple", "banana", "orange"]
myArray = setToArray mySet
print myArray
輸出
[1 of 1] Compiling Main ( main.hs, main.o ) Linking main ... array (1,3) [(1,"apple"),(2,"banana"),(3,"orange")]
示例3
在這個例子中,使用列表推導式將字串集合轉換為字串陣列。
import qualified Data.Set as Set
import Data.Array
setToArray :: Set.Set String -> Array Int String
setToArray set = array (1, Set.size set) [(i, x) | (i, x) <- zip [1..] (Set.toList set)]
main :: IO ()
main = do
let mySet = Set.fromList ["apple", "banana", "orange"]
myArray = setToArray mySet
print myArray
輸出
[1 of 1] Compiling Main ( main.hs, main.o ) Linking main ... array (1,3) [(1,"apple"),(2,"banana"),(3,"orange")]
結論
在Haskell中,集合是一種表示無序的、互異值集合的資料結構。字串集合是一個只包含字串值的集合。陣列是另一種表示有序值集合的資料結構。字串陣列是一個只包含字串值的陣列。在Haskell中,有多種方法可以將字串集合轉換為字串陣列,包括使用`Data.Set`和`Data.Array`模組、列表推導式以及其他庫,例如`vector`。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP