haskell - 如何将字符串分割成 block 并创建这些 block 的列表 haskell

标签 haskell

我对 Haskell 完全陌生,如果这看起来是一个愚蠢的问题,我很抱歉 我正在尝试创建一个函数,它接受一个字符串,并将该字符串拆分为 5 个片段或 block (假设字符串始终可被 5 整除)。然后,创建这些 block 的字符串列表。 到目前为止,我知道这是错误的,因为我不应该计算在递归中需要“获取”的列表的长度,但不确定如何设置“获取” int 值,例如分配计算变量...

calctake :: String -> Int
calctake s = length(s) `div` 5

splitintoFive :: String -> [String]
splitintoFive [] = []
splitintoFive xs =  take (calctake xs) xs :  splitintoFive (drop (calctake xs) xs) 

如何将一个字符串分成 5 部分,并创建一个字符串列表?

最佳答案

您可以创建一个辅助函数:

splitintoFive :: String -> [String]
splitintoFive xs = splitIntoChunksOfLength (calctake xs) xs

splitIntoChunksOfLength :: Int -> String -> [String]
splitIntoChunksOfLength n [] = []
splitIntoChunksOfLength n xs = take n xs : splitIntoChunksOfLength n (drop n xs)

关于haskell - 如何将字符串分割成 block 并创建这些 block 的列表 haskell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73975218/

相关文章:

haskell - 处理有限但任意数量的异构元素的函数

haskell - (Haskell)除以Integer而不是double的结果

Haskell Let 表达式求值

haskell - Haskell 中 >>= 的左递归

haskell - 如何将 System.IO.Unsafe 与 TVars 一起使用?

linux - 如何将 Happstack 应用程序部署到生产环境中?

haskell - 我如何告诉 Cabal 使用哪个依赖项?

haskell - 使用 Haskell sum 类型制作递归列表 - 递归 anchor ?

Haskell "Couldn' t 将预期类型 ‘a’ 与实际类型 ‘[a0]’ 匹配“

haskell - GHC Haskell 中 {-# UNPACK #-} Type# 之间的区别?