找到關於 Haskell 的185 篇文章

Haskell 程式:列印倒三角星形圖案

Akhil Sharma
更新於 2023年3月28日 12:45:23

132 次瀏覽

在 Haskell 中,要列印倒三角星形圖案,我們將使用 mapM_、replicate 和 unlines 函式。在第一個示例中,我們將使用在 main 函式中定義的 ( mapM_ putStrLn $ map (concat . flip replicate "*") rows) 函式;在第二個示例中,我們將使用使用者自定義函式 (printDownwardTriangle n = mapM_ putStrLn [replicate i '*' | i

Haskell 程式:列印左三角星形圖案

Akhil Sharma
更新於 2023年3月28日 12:43:39

241 次瀏覽

在 Haskell 中,要列印左三角星形圖案,我們將使用 mapM_ 函式、replicate 函式和遞迴。在第一個示例中,我們將使用 ( mapM_ putStrLn [replicate i '*' | i > putStrLn (replicate n '*') else return ()) 函式。方法 1:在 main 函式中使用 mapM_ 函式列印左三角星形圖案 在這個方法中,我們首先將三角形的行數定義為 n(在本例中,n = 5)。然後,我們使用列表推導式生成一個字串列表,其中每個字串都是三角形的一行…… 閱讀更多

Haskell 程式:檢查字母是母音還是子音

Akhil Sharma
更新於 2023年3月28日 12:40:40

371 次瀏覽

我們可以使用 Haskell 中的 elem 函式來檢查給定的字母是母音還是子音。在第一個示例中,我們將使用 (isVowel c = c `elem` "aeiouAEIOU") 函式。在其他示例中,我們將結合使用 elem 函式以及某些 if-else 語句、巢狀條件和保護子句。演算法步驟 1 - 定義具有兩個欄位 name 和 age 的資料型別 'Person'。步驟 2 - 使用 elem 函式定義 isVowel 函式作為步驟 3 - 程式執行將從 main 函式開始。main() 函式擁有整個控制權…… 閱讀更多

Haskell 程式:從另一個建構函式呼叫一個建構函式

Akhil Sharma
更新於 2023年3月28日 12:26:32

176 次瀏覽

在 Haskell 中,我們將使用使用者定義的函式從另一個建構函式呼叫一個建構函式。在第一個示例中,我們將使用 (newPerson name = Person name 10) 建構函式;在第二個示例中,我們將使用 (newPerson n a = Person { name = n, age = a }) 建構函式。在第三個示例中,我們將使用 (clonePerson p = p { name = name p ++ " clone" }) 建構函式;在第四個示例中,我們將使用 (clonePerson p = p { name = name p ++ " clone" })…… 閱讀更多

Haskell 程式:使用庫函式獲取給定數字所需的總位數

Akhil Sharma
更新於 2023年3月28日 12:22:59

69 次瀏覽

Haskell 具有諸如 finiteBitSize、ceiling、logBase、length 和 showIntAtBase 之類的內部函式,可用於獲取給定數字所需的總位數。在第一個示例中,我們將使用 (bits = finiteBitSize (fromIntegral x :: Int)) 函式;在第二個示例中,我們將使用 (bitsRequired n = ceiling (logBase 2 (fromIntegral (abs n) + 1))) 函式。在第三個示例中,我們將使用 (bitsRequired n = length $ showIntAtBase 2 intToDigit (abs n) "") 函式。演算法步驟 1 - 匯入內部庫步驟 2 - 定義 bitsRequired 函式…… 閱讀更多

Haskell 程式:計算給定數字的對數伽馬函式

Akhil Sharma
更新於 2023年3月28日 12:20:36

99 次瀏覽

在 Haskell 中,我們將使用斯特林近似和蘭喬斯近似公式來計算給定數字的對數伽馬函式。在第一個示例中,我們將使用帶有 (s = foldr (\(c, q) acc -> c + (q / (x + acc))) 0 (zip (tail p) q) in (log s) - t + log (sqrt (2 * pi) / x) + (c * log (1 + c / 12.0 - (c * c) / 360.0)) 函式的斯特林近似;在第二個示例中,我們將結合使用蘭喬斯近似公式和 (lanczos = log $…… 閱讀更多

Haskell 程式:將數字舍入到 n 位小數

Akhil Sharma
更新於 2023年3月28日 11:58:06

1K+ 次瀏覽

在 Haskell 中,我們可以使用 round、printf 和 truncate 函式將數字舍入到 n 位小數。在第一個示例中,我們將使用 (roundTo n x = (fromInteger $ round $ x * (10^n)) / (10.0^^n)) 函式;在第二個示例中,我們將使用 (roundTo n x = read $ printf ("%." ++ show n ++ "f") x) 函式。在第三個示例中,我們將使用 (roundTo n x = fromIntegral (truncate $ x * 10^n) / 10^n)。演算法步驟 1 - 使用 round 函式定義 roundTo 函式步驟…… 閱讀更多

Haskell 程式:使用遞迴求 N 個數字的和

Akhil Sharma
更新於 2023年3月27日 11:44:50

723 次瀏覽

在 Haskell 中,我們可以使用遞迴、尾遞迴和摺疊遞迴來求 N 個數字的和。在第一個示例中,我們將使用基本情況 (sum_n [] = 0) 和遞迴情況 (sum_n (x:xs) = x + sum_n xs));在第二個示例中,我們將使用尾遞迴。在第三個示例中,我們將使用 (sumOfN''' xs = foldr (+) 0 xs) 函式。演算法步驟 1 - 遞迴函式 sum_n 定義為,例如 1 - sum_n [] = 0 sum_n (x:xs) = x + sum_n xs。…… 閱讀更多

Haskell 程式:使用遞迴求兩個數字的積

Akhil Sharma
更新於 2023年3月27日 11:43:58

468 次瀏覽

在 Haskell 中,我們可以使用遞迴以及遞迴重複加法來求兩個數字的積。在第一個示例中,我們將使用 (product' x y | y == 0 = 0 | y == 1 = x | otherwise = x + product' x (y-1)) 函式。在第二個示例中,我們將使用遞迴重複加法。演算法步驟 1 - 遞迴函式 product’ 定義為,例如 1 和 2 - product' x y | y == 0 = 0…… 閱讀更多

Haskell 程式:使用遞迴求數字的各位數字之和

Akhil Sharma
更新於 2023年3月27日 11:43:33

460 次瀏覽

在 Haskell 中,我們可以使用遞迴以及 mod、div 和其他輔助函式來求數字的各位數字之和。getCurrentTime 和 NominalDiffTime 函式。在第一個示例中,我們將使用 (sumOfDigits n | n < 10 = n | otherwise = (n `mod` 10) + sumOfDigits (n `div` 10)) 函式。在第二個示例中,我們將使用輔助函式。演算法步驟 1 - 遞迴函式 sumOfDigits 定義為,例如 1 - sumOfDigits n | n < 10 = n…… 閱讀更多

廣告
© . All rights reserved.