【问题标题】:Haskell: Convert String representation of Integer List of Lists to Integer List of ListsHaskell:将整数列表的字符串表示形式转换为整数列表
【发布时间】:2019-04-16 22:55:52
【问题描述】:

我有一个包含列表列表的文件,

[[39, 40, 1], [-39, -40, 1], [-39, 40, -1], [1, 41, 2], [-1, -41, 2], [-1, 41, -2], [2, 42, 3], [-2, -42, 3], [-2, 42, -3], [3, 43, 4], [-3, -43, 4], [-3, 43, -4], [4, 44, 5], [-4, -44, 5], [-4, 44, -5], [5, 45, 6], [-5, -45, 6], [-5, 45, -6], [6, 46, 7], [-6, -46, 7], [6, -46, -7], [7, 47, 8], [-7, -47, 8], [7, -47, -8], [-7, 47, -8], [8, 48, 9], [8, -48, -9], [-8, 48, -9], [9, 49, 10], [-9, -49, 10], [9, -49, -10], [-9, 49, -10], [10, 50, 11], [10, -50, -11], [-10, 50, -11], [11, 51, 12], [-11, -51, 12], [11, -51, -12], [-11, 51, -12], [-12, -52, 13], [12, -52, -13], [-12, 52, -13], [-13, -53, 14], [13, -53, -14], [-13, 53, -14], [14, 54, 15], [-14, -54, 15], [14, -54, -15], [-14, 54, -15], [-15, -55, 16], [15, -55, -16], [-15, 55, -16], [16, 56, 17], [-16, -56, 17], [16, -56, -17], [-16, 56, -17], [17, 57, 18], [-17, -57, 18], [-17, 57, -18], [18, 58, 19], [-18, -58, 19], [18, -58, -19], [-18, 58, -19], [19, 59, 60], [-19, -59, 60], [-19, 59, -60], [20, 59, 60], [-20, -59, 60], [20, -59, -60], [-20, 59, -60], [21, 58, 20], [-21, -58, 20], [21, -58, -20], [-21, 58, -20], [22, 57, 21], [-22, -57, 21], [22, -57, -21], [-22, 57, -21], [23, 56, 22], [23, -56, -22], [-23, 56, -22], [24, 55, 23], [-24, -55, 23], [24, -55, -23], [-24, 55, -23], [-25, -54, 24], [25, -54, -24], [-25, 54, -24], [26, 53, 25], [-26, -53, 25], [26, -53, -25], [-26, 53, -25], [27, 52, 26], [-27, -52, 26], [27, -52, -26], [-27, 52, -26], [28, 51, 27], [-28, -51, 27], [-28, 51, -27], [29, 50, 28], [-29, -50, 28], [29, -50, -28], [-29, 50, -28], [30, 49, 29], [-30, -49, 29], [30, -49,-29], [-30, 49, -29], [31, 48, 30], [-31, -48, 30], [31, -48, -30], [-31, 48, -30], [32, 47, 31], [-32, -47, 31], [32, -47, -31], [-32, 47, -31], [33, 46, 32], [33, -46, -32], [-33, 46, -32], [34, 45, 33], [-34, -45, 33], [34, -45, -33], [-34, 45, -33], [35, 44, 34], [-35, -44, 34], [35, -44, -34], [-35, 44, -34],[36, 43, 35], [-36, -43, 35], [-36, 43, -35], [37, 42, 36], [-37, -42, 36], [37, -42, -36], [-37, 42, -36], [38, 41, 37], [-38, -41, 37], [38, -41, -37], [39, 40, -38], [-39, -40, -38], [39, -40, 38], [-39, 40, 38]]

我已经知道如何导入文件,但在从字符串转换时遇到问题 -> [[Int]]。

我该怎么做呢?

【问题讨论】:

  • 你在问什么以及你已经走了多远还不清楚。如果你已经“导入”了这个文件,那么你不应该有一个字符串。 1. 文件到底长什么样? 2.你是怎么导入的?我怀疑您有一个包含上面引用的数据的文件,但您没有导入它,而是以 readFile 或类似的方式读取它 - 因此是我的问题。
  • 那么我什至可能没有正确导入(读取)文件。该文件包含所写的内容。
  • 考虑将数据保存为另一种格式,例如 json。
  • 提供一些背景知识,我遇到的这个问题是针对一个愚蠢的班级,我需要解决 SAT(谷歌它),我已经写了一个解决方案,但是在查找文档时遇到了问题将整个(不是逐行)文件转换为字符串并将其转换为预期的类型。我不关心 JSON,因为在一周内我不会关心这个任务等等。
  • 很遗憾,您对 SAT 求解器的问题持有如此消极的看法 - 它们简直太棒了,可以帮助您快速解决非常复杂的问题,让您感觉自己像个巫师。诸如破解加密算法、证明函数正确、检测死锁、隔离自动驾驶汽车中的坏传感器、解决 sudoko 等事情。无论如何,如果您决定按照上述方式充实问题,那么您仍然可能会找到帮助。跨度>

标签: haskell types


【解决方案1】:

您可以使用readreadMaybe 函数。

例如,

b :: [[Int]]
b = read "[[3, 4], [4, -5]]"

【讨论】:

    猜你喜欢
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    • 2012-02-11
    • 2015-01-14
    相关资源
    最近更新 更多