string - 在 Haskell 中查找文本表中一列中最长的单词

标签 string list haskell max

我有一个文本表,定义为字符串列表的列表:

type Field = String
type Row   = [Field]
type Table = [Row]

我想创建一个函数,可以找到每列最长单词的宽度,如下所示:

columnWidths :: Table -> [Int]

因此,如果有人输入这样的文本表:

["asd", "ffdd"," 12345"]
["dd ss aa","123", "1dssd"]

它应该返回宽度: [8,4,5]

我尝试了一些东西,包括 map 、最大长度和转置,但我似乎无法使其工作。

最佳答案

所以我这样做了:

  1. 使用映射长度查找表格中每个文本项的长度,但我将其映射到整个表格,因此映射(映射长度)
  2. 我对其进行了转置,以便可以找到每列中的最大值
  3. 将其映射到整个表格:

Prelude> import Data.List
Prelude Data.List> let table = [["asd","ffdd","12345"],["dd ss aa","123","1dssd"]]
Prelude Data.List> let lengths = map (map length) table
Prelude Data.List> map maximum $ transpose lengths
[8,4,5]

关于string - 在 Haskell 中查找文本表中一列中最长的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32583480/

相关文章:

java - 在 Java 中连接字符串

android - 如何在android中获取和设置字符串资源值

haskell - 如何在 Haskell 中读取文件并添加文本文件中的数字

mysql - 实例 (Param B.ByteString) 是如何消失的?

haskell - 如何使用 PackageImports 扩展 "shadow"模块?

java - 如何使用 Java 精确匹配字符串

html - C替换字符串中的html标签

python - 从 2 个列表中获取每个日期的总和

C# 嵌套列表存储不正确的值

python - 列表的产品