相关疑难解决方法(0)

如何在Haskell中解析整数矩阵?

所以我已经阅读了理论,现在试图在Haskell中解析一个文件 - 但是我没有得到任何结论.这太奇怪了......

以下是我的输入文件的外观:

        m n
        k1, k2...

        a11, ...., an
        a21,....   a22
        ...
        am1...     amn
Run Code Online (Sandbox Code Playgroud)

其中m,n只是整数,K = [k1, k2...]是一个整数列表,a11..amn是一个"矩阵"(列表列表):A=[[a11,...a1n], ... [am1... amn]]

这是我的快速python版本:

def parse(filename):
    """
    Input of the form:
        m n
        k1, k2...

        a11, ...., an
        a21,....   a22
        ...
        am1...     amn

    """

    f = open(filename)
    (m,n) = f.readline().split()
    m = int(m)
    n = int(n)

    K = [int(k) for k in f.readline().split()]

    # Matrix - list of lists
    A = []
    for i in …
Run Code Online (Sandbox Code Playgroud)

haskell

11
推荐指数
5
解决办法
2017
查看次数

为什么基于[Char]的输入比Haskell中基于[Char]的输出慢得多?

众所周知,人们不会[Char]在Haskell中读取大量数据.一个用ByteStrings来完成这项工作.对此的通常解释是Chars很大并且列表增加了它们的开销.

但是,这似乎不会导致输出出现任何问题.

例如以下程序:

main = interact $ const $ unwords $ map show $ replicate 500000 38000000
Run Code Online (Sandbox Code Playgroud)

在我的计算机上运行只需131毫秒,而以下一个:

import Data.List

sum' :: [Int] -> Int
sum' = foldl' (+) 0

main = interact $ show . sum' . map read . words
Run Code Online (Sandbox Code Playgroud)

如果输入第一个程序的输出作为输入,则需要3.38秒!

使用Strings 的输入和输出性能之间存在这种差异的原因是什么?

string io performance haskell

7
推荐指数
1
解决办法
397
查看次数

标签 统计

haskell ×2

io ×1

performance ×1

string ×1